struts2的配置

来源:互联网 发布:apache storm 快速入门 编辑:程序博客网 时间:2024/06/05 02:24

 

计应134  (实验班)  寿燕
struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 

<%@taglib prefix="s" uri="/struts-tags"%>

 <include file="struts-default.xml"></include>

主要学习了拦截器的操作

拦截器就是动态拦截Action调用的对象。在Struts2框架中有一个struts-default.xml配置文件,struts.xml的源代码如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="action" extends="struts-default">
<interceptors>
<interceptor name="HelloWorld" class="com.HelloWorldInterceptor"/>
</interceptors>
<action name="test" class="com.test">
<result>/success.jsp</result>
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="HelloWorld"></interceptor-ref>
</action>
</package>
</struts>    

fileUpload :是负责上传文件的拦截器。logger:是日志文件,主要输出Action的名字。

大部分时候,拦截器方法都是通过代理的方式来调用的。Struts 2的拦截器实现相对简单。当请求到达Struts 2ServletDispatcher时,Struts 2会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器.

拦截器的使用:

通过Interceptor-ref 元素可以在Action中使用拦截器。

              <interceptor-ref name="myInterceptor">

              </interceptor-ref>

              <interceptor-ref name="defaultStack"></interceptor-ref>

struts2中有一个系统默认的拦截器栈是 defaultStack,如果你手动引用自己的拦截器,系统默认的拦截器栈将不起作用;这样必需手动引入系统的拦截器栈<interceptor-ref name="defaultStack">

              </interceptor-ref>

package com;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class HelloWorldInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation a) throws Exception {
Object action=a.getAction();
System.out.println("拦截器工作中");
String result=a.invoke();
System.out.println("action执行完毕");
return null;
}

Struts2校验框架,校验规则文件的代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>必须输入名字</message>
</field-validator>


<field-validato type="regex">
<param name="expression"><![CDATA[(\w{4,25})]]></param>
<message>输入的用户名只能是字母和数字,长度必须在4到25之间</message>
</field-validato>
</field>


<field name="pass">
          <!-- 指定pass 属性必须满足必填规则 -->
          <field-validator type="requiredstring">
                <param name="trim">true</param>
                <message>必须输入密码</message>
          </field-validator>
          
          <!-- 指定pass 属性必须匹配正则表达式 -->
          <field-validatr type="regex">
               <param name="expression"><![CDATA[(\w{4,25})]]></param>
               <message>您输入的密码只能是字母和数字,且长度必须在4到25之间</message>
          </field-validatr>
      </field>
</validators>





0 0
原创粉丝点击