一个简单的Struts2应用
2016-03-30 23:25
429 查看
简单的总结一下一个Struts2应用遇到的问题
下面简单的描述一下执行过程
1.通过浏览器访问index.jsp页面单击提交按钮,请求sayWelcome
2.sayWelcome请求被Struts2的核心拦截器ActionContextCleanUp和FliterDispatcher拦截处理,FliterDispatcher拦截器查询Action映射器,然后将请求交给Action处理。
3.Action根据配置管理器查询struts.xml配置文件,找到sayWelcome控制器类sayHello,然后创建Action实例。
4.在Action运行环境中,首先调用Struts拦截器,然后调用validate()方法验证表单 ,验证通过则调用execute()方法处理。
1.下载Struts2的jar包
我用的是struts-2.3.16.1-all.zip这个版本2.建立一个web procejt
3. 配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>Struts Blank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
4.配置struts.xml
这里要特别注意不能漏写会报错<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 定义一个名称为test的包 继承Struts2的默认包 -->
<package name="test" extends="struts-default">
<!-- 配置业务控制器的结果视图映射 -->
<action name="sayWelcome" class="myActions.sayHello">
<!-- 配置成功时的视图资源 -->
<result name="success">/welcome.jsp</result>
<!-- 配置验证不成工时的视图资源 -->
<result name="input">/index.jsp</result>
</action>
</package>
</struts>
5.写action类
package myActions; import com.opensymphony.xwork2.ActionSupport; public class sayHello extends ActionSupport { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String execute() throws Exception { return SUCCESS; } public void validate() { if (username == null || username.trim().length() < 5) { addFieldError(username, "用户名错误!"); } } }
6.写jsp页面第一个为登录第二个登录成功跳转后的
<%@page contentType="text/html;" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html" http-equiv="Content-Type" charset="utf-8"> <title>第一个Struts应用</title> </head> <body> <s:form action="sayWelcome"> 请输入用户名:<s:textfield name="username" size="20" /> <s:submit value="确定" /> <s:reset value="重写" /> </s:form> <s:if test="hasFieldErrors()"> <s:fielderror /> </s:if> </body> </html>
<%@ page contentType="text/html" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>登陆成功</title> </head> <body> <!--${username}OGNL表达式用于获取username变量值 --> ${username} </body> </html>
下面简单的描述一下执行过程
1.通过浏览器访问index.jsp页面单击提交按钮,请求sayWelcome
2.sayWelcome请求被Struts2的核心拦截器ActionContextCleanUp和FliterDispatcher拦截处理,FliterDispatcher拦截器查询Action映射器,然后将请求交给Action处理。
3.Action根据配置管理器查询struts.xml配置文件,找到sayWelcome控制器类sayHello,然后创建Action实例。
4.在Action运行环境中,首先调用Struts拦截器,然后调用validate()方法验证表单 ,验证通过则调用execute()方法处理。
相关文章推荐
- Spring框架AOP
- Java实现排序算法1:5种易理解的算法
- [leetcode-332]Reconstruct Itinerary(java)
- Java设计模式之单例模式
- Spring JDBC学习笔记(2):JdbcTemplate的增强版NamedParameterJdbcTemplate
- 将Windows文件路径转换为java中可识别的文件路径
- Java泛型深入理解
- Java 异常
- java中Comparator接口
- java 垃圾回收机制
- java SE基础(Map接口及其实现)
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- spring data jpa 操作JPA 2.0原生api
- Java 多线程实现的三种方法,附两个线程执行不同的输出
- Java SE 疑难点记录
- Java 1.7 ReentrantReadWriteLock源码解析
- Java并发编程:阻塞队列
- java学习之迭代器浅谈
- Struts1与Struts2原理 区别 详解 汇总
- 学习javaEE每一天2016.3.30