Struts是SSH三个框架中的一个,虽然已经敲过SSH网上商城,但对Struts的相关知识还是欠缺的。这不,最近开始用SSH开发官网系统,当别人问自己一个小问题时,就把自己难住啦。不得不回来看看敲过的Shop。
本博客先总结了一下关于Struts2.0的struts.xml配置。让大家在配置struts.xml的过程中少犯错误。
<?xml version="1.0" encoding="UTF-8" ?> <!--指明编码方式UTF-8-->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <!--遵循struts-2.3dtd约束-->
<!---->
<!—include节点是struts2中组件化的方式,可以用来将每个功能独立到一个xml配置中-->
<include file=”struts-default.xml”></include>
<!—package提供了将 多个Action组织为一个模块的方法,package的名字必须是唯一的。
package可以继承另外一个package
name:package名称
extends:继承父类package名称
namespace:定义package命名空间,该命名空间影响到url的地址。
例如此命名空间为/test,name访问的地址是http://localhost:8080/shop/test/xx
-->
<package name="shop" extends="struts-default" namespace="/test">
<!— 定义拦截器
name:拦截器名称
class:拦截器路径
-->
<interceptors>
<interceptor name="privilegeInterceptor" class="cn.itcast.shop.interceptor.PrivilegeInterceptor"/>
</interceptors>
<!—全局results配置-->
<global-results>
<result name="msg">/WEB-INF/jsp/msg.jsp</result>
<result name="login">/WEB-INF/jsp/login.jsp</result>
<result name="LoginFail">/admin/index.jsp</result>
</global-results>
<!— 一个Action可以被多次映射(只要action配置中的name不同)
name:action名称
class:对应的类的路径
method:调用action中的方法名
-->
<!-- 配置首页访问的Action -->
<action name="index" class="indexAction">
<!—节点配置
name:result名称和Action中返回的值相同
type:result类型, 不写则默认为dispatcher
-->
<result name="index" type="dispatcher">/WEB-INF/jsp/index.jsp</result>
</action>
<!-- 配置用户模块的Action -->
<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>
<result name="quit" type="redirectAction">index</result>
<result name="checkcodeFail">/WEB-INF/jsp/regist.jsp</result>
</action>
其实,写这篇博客仅仅是一个引子,是为下篇博客做铺垫的。欲知更多有关struts的相关知识,敬请期待下篇博客。