Struts2.2.3配置

Struts2配置

2011-8-23

冰上浮云

Struts2版本:struts-2.2.3

 

Struts2框架的大概处理流程:

1、加载类(FilterDispatcher)

2、读取配置(struts配置文件中的Action)

3、派发请求(客户端发送请求)

4、调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action )

5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)

6、处理业务(回调Action的execute()方法)

7、返回响应(通过execute方法将信息返回到FilterDispatcher)

8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROER,将跳转到哪个jsp页面)

9、响应用户(jsp--->客户浏览器端显示)

 

必须加载的包:

freemarker-2.3.16.jar

ognl-3.0.1.jar

struts2-core-2.2.3.jar

xwork-core-2.2.3.jar

commons-logging-1.1.1.jar

commons-lang-2.5.jar

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

javassist-3.11.0.GA.jar

 

Struts2处理流程:

 

 

 


JSP用于显示处理结果,可以采用JSTL这类struts2的标签来简化前段实现。

FilerDispatcher是前端JSP显示与后端逻辑处理Action的一个接口。用于把前端JSP的请求按照配置正确的指定到相应的Action,处理完后返回一个相应给FilterDispatcher,让他来决定向哪个页面送出处理结果。在web.xml中对FilterDispatcher进行配置。配置代码如下:

 

<!-- 增加struts2所需要的过滤器,以便在服务器启动时,拦截URL请求 -->

       <filter>

              <filter-name>struts2</filter-name>

              <filter-class>

                     org.apache.struts2.dispatcher.FilterDispatcher

              </filter-class>

       </filter>

 

       <filter-mapping>

              <filter-name>struts2</filter-name>

              <url-pattern>/*</url-pattern>

       </filter-mapping>

 

过滤器有了后需要指定一个映射文件,把前端页面的请求定位到具体的Action进行处理,把处理结果返回给处理结果页面。这个映射就放在class目录下struts.xml文件中。具体映射代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

    "-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

       <packagename="struts2" extends="struts-default">

              <actionname="login" class="com.test.action.LoginAction">

                     <resultname="success">/result.jsp</result>

                     <resultname="input">/login2.jsp</result>

                     <resultname="error">/login2.jsp</result>

              </action>

       </package>

</struts>

 

建立login2.jsp页面,该页面使用JSTL标签实现页面呈现:

引入标签库:<%@ taglib prefix="s"uri="/struts-tags"%>

代码:

<s:formaction="login">

<s:textfield name="username"label="用户名"></s:textfield>

<s:password name="password"label="密码"></s:password>

<s:submit label="登录"></s:submit>

</s:form>

 

编写请求处理的LoginAction,该类Action必须继承com.opensymphony.xwork2.ActionSupport

LoginAction代码:

packagecom.test.action;

importcom.opensymphony.xwork2.ActionSupport;

 

publicclass LoginAction extends ActionSupport {

       private String username;

       private String password;

      

       public String getUsername() {

              return username;

       }

       public void setUsername(String username){

              this.username = username;

       }

       public String getPassword() {

              return password;

       }

       public void setPassword(String password){

              this.password = password;

       }

      

       public String execute()throws Exception{

       if("hello".equals(this.getUsername().trim())&&"123456".equals(this.getPassword().trim())){

                     return this.SUCCESS;

              }else{

                     this.addFieldError("username","username or password is error.");

                     return this.ERROR;

              }

       }

      

       //重写ActionSupport类中的validate()方法;实现表单验证

       @Override

       public void validate() {

              if(null==this.getUsername()||"".equals(this.getUsername().trim())){

                     this.addFieldError("username","userName request is null");

              }

              if(null==this.getPassword() ||"".equals(this.getPassword().trim())){

                     this.addFieldError("password","password request is null");

              }

       }

}

该Action实现了表单验证,当输入为空是就会向login2.jsp页面的JSTL标签返回错误信息并显示。简化了出错处理的步骤。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值