struts2的配置

 

计应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>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值