实战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

  

原文地址:https://www.cnblogs.com/wujixing/p/5497618.html