Structs2-day02

分模块开发

当项目的开发中,我们每个人可能只会负责一部分的开发 ,最终会将各个功能整合到一个struts.xml下进行解析,但是存在这样的问题,如果某个模块出现问题 我们无法清晰的知道是谁写的模块出问题,因此struts.xml中的include标签轻松的解决了问题,

<?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.i18n.encoding" value="utf-8"></constant>
	 <!-- 分模块开发  每个人写一个xml 配置自己的行为  并通过 include引入     -->
	<include file="com/sofency/action/hello.xml"></include> 
	<include file="com/sofency/action/uaccount.xml"></include> 
</struts>

这样张三分配到了hello.xml的编写任务,李四分配到了uaccount.xml的任务 任务非常的清晰

Action常用的编写方式(其中有三个)

/实现action接口和继承actionSupport的区别区别(暂时看不懂 先码着)

  1. 实现Action接口
  2. 继承actionSupport 都会自动执行里面的execute方法
public class UserAction extends ActionSupport{
	
	public String execute(){
		//写注册的逻辑  服务层 Dao层 
		System.out.println("执行");
		return SUCCESS;//接口中的常量
	}
}

Action的方法访问

功能函数如下

package com.sofency.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
	public String execute() {
		System.out.println("action..");
		return "ok";
	}
	public String delete() {
		System.out.println("delete.....");
		return NONE;//不用配置相应的result
	}
	public String add() {
		System.out.println("add.....");
		return NONE;//不用配置相应的result
	}
	public String update() {
		System.out.println("update.....");
		return NONE;//不用配置相应的result
	}
}

张三在写xml里面的功能时常常遇到这样的问题
他每写一个功能都要在写响应的action 例如下面的
第一种方式 常规方式

<action name="deleteAction" class="com.sofency.action.HelloAction" method="delete" ></action>		
<action name="addAction" class="com.sofency.action.HelloAction" method="add" ></action>		
<action name="updateAction" class="com.sofency.action.HelloAction" method="update" ></action> 

功能类都在co.sofency.action.HelloAction下 他很苦恼,感觉搬砖的感觉很不爽。于是有了下面的
第二种访问方式 通配符调用方式

 <action name="book_*" class="com.sofency.action.HelloAction" method="{1}"></action>

book_可以看做该功能写的主人(标识),*可以匹配到里面的所有方法,{1},匹配特定的功能和*对等
访问的方式如下
127.0.0.1:8888/struts2_day01/book_add.action; 访问的就是功能函数下的add方法
127.0.0.1:8888/struts2_day01/book_delete.action; 访问的就是功能函数下的delete方法
这时张三高兴的用一行代码解决的繁琐的问题

但是他又遇到了问题
boss 不让add update delete 没有返回值 认为这样的代码,会将bug给隐藏下来(纯属坑人),要求所有的方法成功执行之后返回SUCCESS同时返同一界面
于是他写了这样的垃圾代码

<action name="deleteAction" class="com.sofency.action.HelloAction" method="delete" >
	<result name="success" >/index.jsp</resuslt>
</action>		
<action name="addAction" class="com.sofency.action.HelloAction" method="add" >
	<result name="success" >/index.jsp</resuslt>
</action>		
<action name="updateAction" class="com.sofency.action.uaccountAction" method="update" >
	<result name="success" >/index.jsp</resuslt>
</action> 

重复的写了三个
<result name="success" >/index.jsp</resuslt>
这是全局页面的配置
<global-results> <result name="success">/hello.jsp</result> </global-results>
写在package包里面这样就可以同一将返回值为success的结果返回到首页了

perfect

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值