实战3--设计管理模块 第二步, 分析功能和请求, 搭建简单框架
2. 分析有几个功能, 对应几个请求
转发和重定向:
请求数量 地址栏
转发 1 不变
重定向 2 变化
功能内的跳转用转发,
多个功能跳转用重定向.
1 列表里有增加, 删除, 修改3个功能
2 列表和删除功能都只有一个请求
3 添加和修改都是有两个请求
4 添加, 修改, 删除成功后, 要重定向到列表功能, 这样在刷新页面的时候才不会出现, 有做一次 增删改的操作
总结: 增删改查共4个功能(列表, 增,删,改), 6个请求(添加2个, 修改2个, 删除1个,列表1个).
所以需要6个对应的action方法, 每个action方法处理一个请求
作用 方法名 返回值 对应的结果
---------------------------------------------------------------------------
列表 list() list list.jsp
删除 delete() toList
添加页面 addUI() addUI addUI.jsp
添加 add() toList
修改页面 editUI() editUI editUI.jsp
修改 edit() toList
简单搭框架:
1. RoleAction.java, 在view.action包下: 注意要注入bean
package cn.itcast.oa.view.action; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import com.opensymphony.xwork2.ActionSupport; @Controller @Scope("prototype") public class RoleAction extends ActionSupport { /*列表*/ public String list() throws Exception { return "list"; } /*删除*/ public String delete() throws Exception { return "toList"; } /*添加页面*/ public String addUI() throws Exception { return "saveUI"; } /*添加*/ public String add() throws Exception { return "toList"; } /*修改页面*/ public String editUI() throws Exception { return "saveUI"; } /*修改*/ public String edit() throws Exception { return "toList"; } }
=================== CRUD的Action方法的模板
/** 列表 */ public String list() throws Exception { return "list"; } /** 删除 */ public String delete() throws Exception { return "toList"; } /** 添加页面 */ public String addUI() throws Exception { return "saveUI"; } /** 添加 */ public String add() throws Exception { return "toList"; } /** 修改页面 */ public String editUI() throws Exception { return "saveUI"; } /** 修改 */ public String edit() throws Exception { return "toList"; }
2. 配置文件: 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="true" /> <!-- 配置扩展名为action --> <constant name="struts.action.extension" value="action" /> <!--把主题配置为simple, --> <constant name="struts.ui.theme" value="simple" /> <package name="default" namespace="/" extends="struts-default"> <!-- 配置 测试用的action, 还没有和spring整合, class属性写全 名--> <!-- 当struts2余spring整合后,class属性可以写bean的名称 --> <!--<action name="test" class="cn.itcast.oa.test.TestAction"> --> <action name="test" class="testAction"> <result name="success">/test.jsp</result> </action> <!-- 岗位管理 --> <action name="role_*" class="roleAction" method="{1}"> <result name="list">/WEB-INF/jsp/roleAction/list.jsp</result> <result name="saveUI">/WEB-INF/jsp/roleAction/saveUI.jsp</result> <result name="toList" type="redirectAction">role_list</result> </action> </package> </struts>
3. 创建2个jsp页面, list.jsp, saveUI.jsp(合并了addUI和editUI)只显示几个文字即可
验证:
http://localhost:8080/ItcastOA/role_list.action =>显示list http://localhost:8080/ItcastOA/role_addUI.action =>显示addUI http://localhost:8080/ItcastOA/role_add.action =>浏览器显示role_list.action, 页面显示list