Struts 2.x权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1.4 增加应用的Action

在Eclipse工具中新建一个Java类,该Java类的类名为“LoginAction”,其代码与第2章所使用的 LoginAction 类代码相同,将该类文件保存在 Struts2Demo 应用的 org.crazyit.demo. action包下。

新建一个Java文件的方法非常简单,此处不再赘述。本应用的Action类的代码与第2章的Action类完全一样,此处也不再给出。

在struts.xml文件中配置Action,配置该Action与前面介绍的基本一致,需要定义Action的name属性、class属性等。增加Action定义后的struts.xml文件代码如下。

程序清单:codes\03\3.1\Struts2Demo\src\struts.xml

<?xml version="1.0" encoding="GBK" ?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- 配置Struts 2配置文件的根元素 -->
<struts>
    <!-- Struts 2的Action必须放在指定的包空间下定义 -->
    <package name="demo" extends="struts-default">
          <!-- 定义login的Action,该Action的实现类为
                org.crazyit.demo.action.LoginAction类 -->
          <action name="login" class="org.crazyit.demo.action.LoginAction">
                <!-- 定义input的逻辑视图名,对应loginForm.jsp页面 -->
                <result name="input">/WEB-INF/content/loginForm.jsp</result>
                <!-- 定义处理结果和视图资源之间的映射关系 -->
                <result name="error">/WEB-INF/content/error.jsp</result>
                <result name="success">/WEB-INF/content/welcome.jsp</result>
          </action>
          <action name="*">
                <!-- 直接跳转到*所代表的页面
                比如用户访问abc Action,此时*代表abc
                Struts 2将会跳转到abc.jsp页面 -->
                <result>/WEB-INF/content/{1}.jsp</result>
          </action>
    </package>
</struts>

至此,整个Struts 2应用完全建立成功,如果读者还需要增加数据校验,则可增加对应的校验文件,并将该文件放在与对应Action源文件相同的路径下即可。