您的位置:首页 > 编程语言 > Java开发

struts2的配置

2015-06-08 11:48 417 查看
计应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 2的ServletDispatcher时,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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: