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

Struts

2016-05-01 22:10 323 查看
    网上商城中接触了很多新的内容,Struts2的配置信息,在struts.xml文件中,查了相关资料,简单了解了struts.xml中代码的作用;

    Struts2的执行过程: 请求>过滤器>拦截器>Action>result > 回调 struts.xml中配置拦截器之后的内容;

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.devMode" value="false" />
<package name="Shop" extends="struts-default" namespace="/">
<!-- 很多的页面都要往这里跳转;全局 ;带回来一些信息; -->
<global-results>
<result name="msg">/WEB-INF/jsp/msg.jsp</result>
</global-results>

<!-- 配置首页访问的Action -->
<action name="index" class="indexAction">
<result name="index">/WEB-INF/jsp/index.jsp</result>
</action>
<!-- 配置用户模块的Action _*:action处理所有以user_开头的请求 method="{1}"调用action中的以methodname命名的方法
在jsp中”/”表示tomcat 服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径。 -->
<action name="user_*" class="userAction" method="{1}">
<result name="registPage">/WEB-INF/jsp/regist.jsp</result>
<result name="input">/WEB-INF/jsp/regist.jsp</result>
<result name="loginPage">/WEB-INF/jsp/login.jsp</result>
<result name="login">/WEB-INF/jsp/login.jsp</result>
<result name="loginSuccess" type="redirectAction">index</result>	<!-- 直接定向,能把Session中的数据带过来。用过的信息存入到Session,定向 -->
<result name="quit" type="redirectAction">index</result>				 <!-- 销毁Session中的内容,然后重定为到页面; -->

<result name="checkcodeFail">/WEB-INF/jsp/regist.jsp</result>
</action>

<!-- 验证码的Action -->
<action name="checkImg" class="checkImgAction">

</action>

<!-- 商品模块的Action -->
<action name="product_*" class="productAction" method="{1}">
<result name="findByPid">/WEB-INF/jsp/product.jsp</result>
<result name="findByCid">/WEB-INF/jsp/productList.jsp</result>
<result name="findByCsid">/WEB-INF/jsp/productList.jsp</result>
</action>

<!-- 购物车的Action -->
<action name="cart_*" class="cartAction" method="{1}">
<result name="addCart">/WEB-INF/jsp/cart.jsp</result>
</action>

</package>

</struts>


分为三个节点部分:

Package , Action,result

pakage:

<package name="Shop" extends="struts-default" namespace="/">


1.name:包名,这里指项目的名称;

2.extends:继承,指定继承的包,将继承包下的配置信息复制到当前包下;

3.namespace:命名空间,用于规定Action的访问路径,“/”开头;

action:

业务控制器,用于注册业务控制器组件;

<action name="user_*" class="userAction" method="{1}">


1.name:用于规定Action的访问路径 。配置用户模块的Action _*:action处理所有以user_开头的请求

2.class:业务控制器组件,指定控制器对应的类;

3.method:指定访问当前action要调用的方法;method="{1}"调用action中的以method name命名的方法 。

result:

输出组件,转发,重定向,直接输出

<result name="registPage">/WEB-INF/jsp/regist.jsp</result>


    1.name:action 中,method指定方法的返回字符串,方法返回到该字符串;

    2.默认做转发,标记内容为转发的页面;

        在jsp中”/”表示tomcat 服务器的根目录,在struts.xml配置文件中”/”表示webapp的根路径,即MyEclipse web项目中的WebRoot路径。

<result name="loginSuccess" type="redirectAction">index</result>	<!-- 直接定向,能把Session中的数据带过来。用过的信息存入到Session,定向 -->

    type="redirectAction"  标记内容配置action的名称,不带后缀.action ; 如果带参数则在action 后面加上需要的内容。例如index ,可修改为index?id=XXX;

总结:

    实践之后,认真的研究一下理论,就会豁然开朗很多,每一行代码都有他的意义,不同的时期,不同的阶段对自己要有不同的要求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: