(七)Struts2的struts.xml的配置细节
来源:互联网 发布:linux如何退出top命令 编辑:程序博客网 时间:2024/06/05 22:47
这里说的struts.xml说到的包含内容如下:
1.include包含另一个xml
2.默认action,主要用于跳转不存在的页面,到我们自定义的一个好看的页面,而不是难看的错误页面.
3.struts.xml中action下的result的类型
4.struts.xml中的Global_Results,全局结果集
5.struts.xml中的动态结果集
6.struts.xml带参数的结果集
一.include包含另一个xml文件:主要用于实际开发,不同人员的区分.
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <include file="login.xml" /></struts>
包含下面的login.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <package name="login" extends="struts-default" namespace="/login"> <action name="login*" class="com.bjsxt.struts2.user.action.LoginAction{1}"> <result>/user_login_success.jsp</result> </action> </package></struts>
二.默认action,主要用于跳转不存在的页面,到我们自定义的一个好看的页面,而不是难看的错误页面.
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="default" namespace="/" extends="struts-default"><!--这里的default-action-ref是指 www.xxx.xxx/default/===>什么都没默认进入index action.--> <default-action-ref name="index"></default-action-ref> <action name="index"> <result>/default.jsp</result> </action> </package></struts>
三.struts,xml中的result的类型
如上面,result默认为dispatcher
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="resultTypes" namespace="/r" extends="struts-default"> <action name="r1">//运用服务器跳转到结果页面,只能跳转到页面,不能是action,也是默认的类型 <result type="dispatcher">/1.jsp</result> </action> <action name="r2">//重定向 <result type="redirect">/r2.jsp</result> </action> <action name="r3"> <!--重点:同一,但可以forward到action,是action是本xml中的action的name...--> <result type="chain">r1</result> </action> <action name="r4"> //同二,但可以重定向到action <result type="redirectAction">r</result> </action> //其余不常用,后面文章会有. </package></struts>
如上,有跳到本xml的其他包下的action,就如下所写
<action name="r3"> <result type="chain"><param name="actionName">gogogo123</param><param name="namespace">/socure</param></result></action>
其他的包:
<package name="socure" namespace="/socure" extends="struts-default"> <action name='gogo123" class=""...............><result>index.jsp </result></action></package>四:Struts2中的global_Results,全局结果集
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="userinfo" namespace="/userinfo" extends="struts-default"> <!-- global-results 就是这个包下action全局公用的一个result,--> <global-results> <result name="mainpage">/main.jsp</result> </global-results> <action name="index"> <result>/index.jsp</result> </action> <action name="userinfo" class="org.credo.struts2.userinfo.action.userinfoAction"> <result>/userinfo_success.jsp</result> <result name="error">/userinfo_error.jsp</result> </action> </package> <!--注意看 extends,它继承上面的package,所以也可以使用name为userinfo的包下所有的配置--> <package name="admin" namespace="/admin" extends="userinfo"> <action name="admin" class="org.credo.struts2.userinfo.action.AdminAction"> <result>/admin.jsp</result> </action> </package></struts>五.struts.xml中的动态结果集
这个用的不是太多,但还是需要了解的.
代码上注释很完整,这是我的风格:
struts.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="userinfo" namespace="/userinfo" extends="struts-default"> <action name="userinfo" class="org.credo.userinfo.action.UserAction"><!--这里用${}来获取堆栈里存进去的值.如截图所示:--> <result>${r}</result> </action> </package> </struts>
如图所示的堆栈内容:
action代码:
public class UserAction extends ActionSupport {private int type;private String r;public String getR() {return r;}public void setR(String r) {this.r = r;}public int getType() {return type;}public void setType(int type) {this.type = type;}@Overridepublic String execute() throws Exception {if(type == 1) r="/user_success.jsp";else if (type == 2) r="/user_error.jsp";return "success";}}
如上所示,定义了一个r,并且赋值存入到堆栈中,而Struts的配置文件struts.xml中可以使用${值名称}的方式来获取值.它是OGNL表达式.
六.struts.xml带参数的结果集
首先是struts.xml文件代码,可以看到结果带了参数, ?t=${type}.而这种带参数的原因是因为结果集的类型为重定向redirect.<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <constant name="struts.devMode" value="true" /> <package name="userinfo" namespace="/userinfo" extends="struts-default"> <action name="userinfo" class="org.credo.struts2.userinfo.action.UserAction"> <result type="redirect">/user_success.jsp?t=${type}</result> </action> </package> </struts>
下面是action的代码,其中定义了type.:public class UserAction extends ActionSupport {private int type;public int getType() {return type;}public void setType(int type) {this.type = type;}@Overridepublic String execute() throws Exception {return "success";}
第一个index页面:<body>向结果传参数<ol><li><a href="user/user?type=1">传参数</a></li></ol></body>第二个接收页面:
<body>User Success!from valuestack: <s:property value="t"/><br/>from actioncontext: <s:property value="#parameters.t"/><s:debug></s:debug></body></html>
可以看到在堆栈里是无法获取到数据的.因为这里指向的是jsp页面而不是action类.而在action环境中则可以通过value="#parameters.t" 来获取到这个参数.
- (七)Struts2的struts.xml的配置细节
- struts2 的struts.xml配置
- struts2的struts.xml配置
- Struts2的配置文件的配置struts.xml
- 简单的struts2.0配置struts.xml
- Struts2 Chapter2 struts.xml文件的配置
- struts2 的struts.xml配置详解
- struts2 的struts.properties(xml)配置详解
- 《研磨struts2》之struts.xml的配置
- struts2的struts.xml常量配置
- 配置struts2的配置文件struts.xml
- Struts2的配置 struts.xml Action详解
- Struts2的Struts.xml 补充和Struts.properties配置详解
- struts.xml 配置 细节
- 关于struts2的xml配置的小细节
- Struts2的配置 之 struts.xml的配置
- Struts2.x学习七(struts.xml配置详解)
- Struts2的struts.xml配置中的namespace的使用
- struts2中action的3种实现方式
- Sunboy_2050的专栏
- html id与name区别
- request.getScheme()
- oracle 数据库表空间、用户、权限的创建与删除
- (七)Struts2的struts.xml的配置细节
- 程序员每天该做的事
- 页面图片浮动左右滑动效果实现案例
- LINUX设备驱动之tty及console驱动(二)
- Jquery 隔行显示样式和追加样式Toggle()
- ·LINUX设备驱动之tty及console驱动(一)
- linux系统的休眠与唤醒简介
- LINUX设备驱动之输入子系统(三)
- Linux 之 /etc/profile、~/.bash_profile 等几个文件的执行过程