struts2 开发中,一些功能需要在struts.xml中的配置

1.普通package<!– package元素:* name:为当前包起名作用,用于继承* namespace:命名空间,相当于一个房间号:我们需要对号入座* extends:当使用action的时候,必须继承struts-default,如果不继承,,struts2定义的所有方法将失效–><package name="primer" namespace="/primer" extends="struts-default"><!–name:action路径如果在当前命名空间下找不到action,默认执行执行action,作用:在项目出现异常的时候,统一跳转的页面 –><default-action-ref name="helloWorldAction"></default-action-ref><!– action元素:* name:页面需要处理页面访问的链接,即action路径* class:处理当前链接的类(全路径)–><action name="helloWorldAction" class="cn.itcast.web.a_primer.HelloWorldAction"><!– result元素:name:返回值(与XXXXXActon类中的return的返回值对应)/primer/success.jsp,需要跳转的页面–><result name="success">/primer/success.jsp</result></action><!– 没有指定action中的class,默认是ActionSupprot中的execute()方法如果没有指定result中的name,默认是执行success –><action name="actionNoClass"><result>/primer/formSuccess.jsp</result></action></package>2.package 设置转发与重定向的写法<package name="resulttype" namespace="/resulttype" extends="struts-default"><action name="resulttypeAction" class="cn.itcast.web.c_resulttype.ResulttypeAction"><!– 写法1 –><!– <result name="success" type="dispatcher">/resulttype/success.jsp</result> –><!– 写法2 –><!– <result name="success" type="dispatcher"><param name="location">/resulttype/success.jsp</param></result>–><!–<result name="success" type="redirect">/resulttype/success.jsp</result> –><!– 重定向到另一个资源的action –><result name="success" type="redirectAction"><!– name="actionName":需要访问的action的路径name="namespace":指向另一个Action资源的命名空间如果使用重定向,request作用域将无效–><param name="actionName">helloWorldAction</param><param name="namespace">/primer</param></result></action></package>3.通配符在struts.xml配置中的使用<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"""><struts><!– 是否调用action中的动态方法:true(默认):允许调用(在action中可以!号)false:不允许调用调用动态方法 –><constant name="struts.enable.DynamicMethodInvocation" value="true"></constant><package name="pattern" namespace="/pattern" extends="struts-default"><!– 定义全局的返回结果 –><global-results><result name="delete">/pattern/successGlobal.jsp</result></global-results><!– method:表示BookAction类中方法的名称,返回值String –><action name="bookAction" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action><!– 通配符实例(1)<a href="${pageContext.request.contextPath}/pattern/a_add.action"> 通配符映射示例(1)</a><br><a href="${pageContext.request.contextPath}/pattern/b_add.action"> 通配符映射示例(1)</a><br><a href="${pageContext.request.contextPath}/pattern/c_add.action"> 通配符映射示例(1)</a><br> –><!–<action name="a_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action><action name="b_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action><action name="c_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action> –><!– <action name="*_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action> –><!– 通配符实例(2)<a href="${pageContext.request.contextPath}/pattern/BookAction_add.action"> 图书</a><br><a href="${pageContext.request.contextPath}/pattern/UserAction_add.action">用户</a><br>–><!– <action name="BookAction_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action><action name="UserAction_add" class="cn.itcast.web.d_pattern.UserAction" method="add"><result name="add">/pattern/UserAction.jsp</result></action>–><!– <action name="*_add" class="cn.itcast.web.d_pattern.{1}" method="add"><result name="add">/pattern/{1}.jsp</result></action> –><!– 通配符实例(3) <a href="${pageContext.request.contextPath}/pattern/BookAction_add.action">图书添加</a><br><a href="${pageContext.request.contextPath}/pattern/BookAction_delete.action">图书删除</a><br><a href="${pageContext.request.contextPath}/pattern/UserAction_add.action">用户添加</a><br><a href="${pageContext.request.contextPath}/pattern/UserAction_delete.action">用户删除</a><br>–><!– <action name="BookAction_add" class="cn.itcast.web.d_pattern.BookAction" method="add"><result name="add">/pattern/BookAction.jsp</result></action><action name="BookAction_delete" class="cn.itcast.web.d_pattern.BookAction" method="delete"><result name="delete">/pattern/success.jsp</result></action><action name="UserAction_add" class="cn.itcast.web.d_pattern.UserAction" method="add"><result name="add">/pattern/UserAction.jsp</result></action><action name="UserAction_delete" class="cn.itcast.web.d_pattern.UserAction" method="delete"><result name="delete">/pattern/success.jsp</result></action>–><!– <action name="*_*" class="cn.itcast.web.d_pattern.{1}" method="{2}"><result name="{2}">/pattern/{1}.jsp</result><result name="delete">/pattern/success.jsp</result></action> –><!– 动态方法调用<a href="${pageContext.request.contextPath}/pattern/BookAction!add.action">图书添加</a><br><a href="${pageContext.request.contextPath}/pattern/BookAction!delete.action">图书删除</a><br>–><!– <action name="BookAction" class="cn.itcast.web.d_pattern.BookAction"><result name="add">/pattern/BookAction.jsp</result><result name="delete">/pattern/success.jsp</result></action>–><!– 使用通配符调用(在项目中建议使用) 使用通配符定义action<br><a href="${pageContext.request.contextPath}/pattern/BookAction_add.action">图书添加</a><br><a href="${pageContext.request.contextPath}/pattern/BookAction_delete.action">图书删除</a><br> –><action name="BookAction_*" class="cn.itcast.web.d_pattern.BookAction" method="{1}"><result name="add">/pattern/BookAction.jsp</result><result name="delete">/pattern/success.jsp</result></action></package></struts>4.上传文件功能的配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"""><struts><constant name="struts.multipart.maxSize" value="5229339"></constant><package name="upload" namespace="/upload" extends="struts-default"><!– 1、配置上传文件大小2、配置允许上传文件的类型3、配置允许上传文件的扩展名 –><!– <interceptors><interceptor-stack name="defaultStack">将fileUpload放置到默认栈的后面,当默认栈执行完毕后,再执行<interceptor-ref name="fileUpload"><param name="maximumSize">5229339</param><param name="allowedTypes">application/pdf,application/vnd.ms-excel</param><param name="allowedExtensions">.pdf,.txt</param></interceptor-ref><interceptor-ref name="defaultStack"></interceptor-ref></interceptor-stack></interceptors> –><action name="uploadAction_*" class="cn.itcast.web.f_upload.UploadAction" method="{1}"><interceptor-ref name="defaultStack"><!– 定义文件的大小,默认是2M –><param name="fileUpload.maximumSize">1229339</param><!– 定义允许上传的文件类型,如果文件类型定义多个,需要用逗号分开 –><param name="fileUpload.allowedTypes">application/pdf,application/vnd.ms-excel,application/vnd.ms-powerpoint</param><!– 定义文件的扩展名,如果存在多个扩展名,用逗号分开 –><param name="fileUpload.allowedExtensions">.pdf,.ppt</param></interceptor-ref><result name="success">/upload/success.jsp</result><!–input: 如果该类中上传文件失败,可跳转到/upload/error.jsp –><result name="input">/upload/error.jsp</result></action><action name="uploadsAction_*" class="cn.itcast.web.f_upload.UploadsAction" method="{1}"><result name="success">/upload/success.jsp</result><result name="input">/upload/error.jsp</result></action></package></struts>5.自定义拦截器 配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"""><struts><package name="aop" namespace="/aop" extends="struts-default"><!– 自定义拦截器 –><interceptors><interceptor name="person" class="cn.itcast.web.g_aop.PersonInterceptor"></interceptor><interceptor-stack name="personStack"><interceptor-ref name="defaultStack"></interceptor-ref><!– 将自定义的拦截器放置到默认栈的后面 –><interceptor-ref name="person"></interceptor-ref></interceptor-stack></interceptors><!– 默认执行的拦截器,即自定义的拦截器 –><default-interceptor-ref name="personStack"></default-interceptor-ref><action name="userAction_*" class="cn.itcast.web.g_aop.UserAction" method="{1}"><result name="success">/aop/success.jsp</result><!– 表示失败 –><result name="error">/aop/error.jsp</result></action></package></struts>6.表单校验 配置(1)手工校验的xml配置(仅需要指定input跳转页面即可)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"""><struts><package name="validate" namespace="/validate" extends="struts-default"><action name="validateAction_*" class="cn.itcast.web.h_validate.ValidateAction" method="{1}"><result name="success">/validate/success.jsp</result><!– 表示失败,input:如果验证失败需要跳转到的页面(struts2自带) –><result name="input">/validate/login.jsp</result></action><action name="validateXmlAction_*" class="cn.itcast.web.h_validate.ValidateXmlAction" method="{1}"><result name="success">/validate/success.jsp</result><!– 表示失败,input:如果验证失败需要跳转到的页面(struts2自带) –><result name="input">/validate/loginxml.jsp</result></action></package></struts>(2)xml校验 (针对ValidateAction中的所有方法)(注意xml文件命名规则:ValidateXmlAction-validation.xml)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.3//EN"""><!– 使用XML文件对指定Action类做校验 –><validators><!– 指定校验的字段名称,对应表单中name的属性值 –><field name="username"><!– 针对某一字段的验证规则 struts2将验证规则存放到xwork-2.x.jar中com.opensymphony.xwork2.validator.validators下的default.xml文件–><!– 用户名不能为空 –><field-validator type="requiredstring"><!– 指定验证规则中属性名称指定相应值 –><param name="trim">true</param><!– 填写提示的错误信息 –><message>用户名不能为空</message></field-validator></field><field name="psw"><!– 密码不能为空 –><field-validator type="requiredstring"><param name="trim">true</param><message><![CDATA[密码不能为空]]></message></field-validator><!– 密码长度在6到12之间 –><field-validator type="regex"><param name="expression">^[A-Za-z0-9]{6,12}$</param><message><![CDATA[密码的长度不匹配(需要输入6到12之间)]]></message></field-validator></field></validators><?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.3//EN"""><!– 使用XML文件对指定Action类做校验 –><validators><!– 指定校验的字段名称,对应表单中name的属性值 –><field name="username"><!– 针对某一字段的验证规则 struts2将验证规则存放到xwork-2.x.jar中com.opensymphony.xwork2.validator.validators下的default.xml文件–><!– 用户名不能为空 –><field-validator type="requiredstring"><!– 指定验证规则中属性名称指定相应值 –><param name="trim">true</param><!– 填写提示的错误信息 –><message>用户名不能为空</message></field-validator></field><field name="psw"><!– 密码不能为空 –><field-validator type="requiredstring"><param name="trim">true</param><message><![CDATA[密码不能为空]]></message></field-validator><!– 密码长度在6到12之间 –><field-validator type="regex"><param name="expression">^[A-Za-z0-9]{6,12}$</param><message><![CDATA[密码的长度不匹配(需要输入6到12之间)]]></message></field-validator></field><!– 验证年龄不能小于0 –><field name="age"><field-validator type="agevalidator"><message><![CDATA[年龄不能小于0]]></message></field-validator></field></validators>(4)自定义校验 (在src的目录下创建validators.xml,配置如下)<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE validators PUBLIC"-//OpenSymphony Group//XWork Validator Config 1.0//EN"""><validators><!– name:为自定义的校验规则指定名称,与ValidateXmlAction-validateXmlAction_login-validation.xml文件中校验规则type的值对应class:校验规则的类路径 –><validator name="agevalidator" class="cn.itcast.web.h_validate.AgeValidator"></validator></validators>7.国际化 配置<!– 加载国际化的资源文件name:在项目配置国际化资源文件,让显示的错误信息为中文value:如果在src的目录下,直接填写properties文件的名称如果将资源文件放置到cn.itcast.web下,此时填写cn.itcast.web.资源文件名称–><constant name="struts.custom.i18n.resources" value="fileupload,cn.itcast.web.i_i18n.resource,cn.itcast.web.l_model.token"></constant>世界会向那些有目标和远见的人让路(冯两努——香港着名推销商

struts2 开发中,一些功能需要在struts.xml中的配置

相关文章:

你感兴趣的文章:

标签云: