首页 / XML / struts.xml的配置
struts.xml的配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了struts.xml的配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5218字,纯文字阅读大概需要8分钟。
内容图文
![struts.xml的配置](/upload/InfoBanner/zyjiaocheng/1201/c0a6d476fb474399b4ad3702efc0a927.jpg)
<? xml version="1.0" encoding="UTF-8" ?> <!-- 第一行必须这样写,这句话必须放在第一行 --> <!-- --> <!-- 验证文件,xsd和dtd是xml的验证文件,struts的配置文件是要dtd的,文件来源: jar包中struts-core______struts-2.3.dtd --> <! DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd" > < struts > <!-- 更改Struts默认后缀,这是其中一种方式,还有一种方式是新建配置文件 --> < constant name ="struts.action.extension" value ="action" /> <!-- struts标签下有个package标签, extends="struts-default"一般要与 jar包中struts-core____struts-default.xml中的package中的name属性一致 --> < package name ="proejctPackage" namespace ="/project" extends ="struts-default" > <!-- name="list"是url中请求的名字 class="com.kaishengit.action.HomeAction"对应的类的完全限定名 method表示请求Action中的方法,不写默认为execute result中写请求的响应地址,分为success等.. --> < action name ="list" class ="com.kaishengit.action.HomeAction" method ="list" > < result name ="success" >/WEB-INF/views/list.jsp</result></action></package><!-- <param name="actionName">list</param> 表示重定向list.action中,不用写list.action 当修改了后缀为其他的时候,也不用在这里修改,struts会自动更换 namespace命名空间,没有定义的时候默认的就是/ package中的属性namespace 请求的url要这样写localhost/task/home.action result中的<param name="namespace">/project</param> 表示重定向的位置是 localhost/project/list.action 传参:只要name值不是actionName,namespace,suppressEmptyParameters,parse,anchor这 五个值都会自动当参数传过去 <param name="id">${projectId}</param> --><package name="taskPackage" namespace="/task" extends="struts-default"><action name="home" class="com.kaishengit.action.HomeAction"><result type="redirectAction"><param name="actionName">list</param><param name="namespace">/project</param><param name="id">${projectId}</param></result><!-- <result type="redirect">index.jsp</result> <result name="success">/WEB-INF/views/home.jsp</result> --></action><!--使用通配符,了解即可 --><action name="*_*" class="com.kaishengit.action.{1}Action" method="{2}"><result>/WEB-INF/views/list.jsp</result></action></package></struts>
过滤器中 给struts.xml配置 ,不用在程序中写死哪些需要过滤,哪些不需要
< interceptor-ref name ="login" > < param name ="namespace" >/admin</param><param name="actionNames">home,login</param><param name="sessionName">curr_Admin</param></interceptor-ref>
这时候就要在LoginInterceptor中修改
private List<String> actionNameList = new ArrayList<String>(); private String namespace; private String actionNames; private String sessionName; @Override public String intercept(ActionInvocation invocation) throws Exception { ActionProxy proxy = invocation.getProxy(); String namespace = proxy.getNamespace(); String actionName = proxy.getActionName(); if(this.namespace.equals(namespace) && actionNameList.contains(actionName)) { return invocation.invoke(); } else { ActionContext actionContext = invocation.getInvocationContext(); Map<String, Object> session = actionContext.getSession(); Object currAdmin = session.get(sessionName); if(currAdmin == null) { return Action.LOGIN; } else { return invocation.invoke(); } } } //要生成他们的get和set 其中actionNames的要修改成publicvoid setActionNames(String actionNames) { if(actionNames.indexOf(",") != -1) { String[] array = actionNames.split(","); for(String name : array) { actionNameList.add(name); } } else { actionNameList.add(actionNames); } }
配置文件越来越大,导致修改不便,查看不容易
每个模块的放在一个.xml中,例如struts-admin.xml
< package name ="AdminPackage" namespace ="/admin" extends ="basePackage" > </ package >
struts.xml成了主配置文件,里面是一些公共的配置,还有对其他.xml的导入
< struts > <!-- 更改Struts默认后缀 --> < constant name ="struts.action.extension" value ="action" /> <!-- <constant name="struts.multipart.maxSize" value="10485760"/>是修改默认文件上传大小限制 --> < constant name ="struts.multipart.maxSize" value ="10485760" /> <!-- 导入其他xml配置 --> < include file ="struts-admin.xml" /> < include file ="struts-product.xml" /> < include file ="struts-file.xml" /> < include file ="struts-json.xml" /> < package name ="basePackage" extends ="struts-default" abstract ="true" > < interceptors > < interceptor name ="myTimer" class ="com.kaishengit.interceptor.TimerInterceptor" /> < interceptor name ="login" class ="com.kaishengit.interceptor.LoginInterceptor" /> < interceptor-stack name ="myStack" > < interceptor-ref name ="defaultStack" /> < interceptor-ref name ="login" > < param name ="namespace" >/admin</param><param name="actionNames">home,login</param><param name="sessionName">curr_Admin</param></interceptor-ref></interceptor-stack></interceptors><default-interceptor-ref name="myStack"/><global-results><result name="login" type="redirectAction"><param name="actionName">home</param><param name="namespace">/admin</param><param name="error">1002</param></result></global-results></package></struts>
原文:http://www.cnblogs.com/itliucheng/p/4459584.html
内容总结
以上是互联网集市为您收集整理的struts.xml的配置全部内容,希望文章能够帮你解决struts.xml的配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。