Struts2入门到精通二——————action的配置



一、为一个action(java类)写多个方法相对应,这样可以减少Action类的数量,但是却无法减少配置数量

1、新建一个项目struts01

2、UserAction.java如下

package org.zttc.itat.action;

public class UserAction {
	public String addInput(){
		return "success";
	}
	public String add(){
		return "success";
	}
	public String list(){
		return "success";
	}
}

3、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>
    <package name="default" namespace="/" extends="struts-default">
    	<action name="user_addInput" class="org.zttc.itat.action.UserAction" method="addInput">
    		<result name="success">/WEB-INF/user/addInput.jsp</result>
    	</action>
    	<action name="user_add" class="org.zttc.itat.action.UserAction" method="add">
    		<result name="success">/WEB-INF/user/add.jsp</result>
    	</action>
    	<action name="user_list" class="org.zttc.itat.action.UserAction" method="list">
    		<result name="success">/WEB-INF/user/list.jsp</result>
    	</action> 
    </package>
</struts>

4、在WebContext文件夹下的user文件夹下新建三个jsp页面

4.1  addInput.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>User AddInput</h1>
</body>
</html>
4.2  add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>User Add</h1>
</body>
</html>
4.3 list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>User List</h1>
</body>
</html>

5、在浏览器中输入

           http://localhost:8080/struts01/user_list      ,结果

User List

User Add


User AddInput



二、只有一个action,在调用的时候确定方法。这个方法虽然减少了Action的数量,但是依然得增加大量的结果集进行配置

1、UserAction.java如下

package org.zttc.itat.action;

public class UserAction {
	public String addInput(){
		return "addInput";
	}
	public String add(){
		return "add";
	}
	public String list(){
		return "list";
	}
}

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>
    <package name="default" namespace="/" extends="struts-default">
    	 <action name="user"	class="org.zttc.itat.action.UserAction">
    	<result	name="add">/WEB-INF/user/add.jsp</result>
    	<result	name="addInput">/WEB-INF/user/addInput.jsp</result>
    	<result name="list">/WEB-INF/user/list.jsp</result>
    </action>
    </package>
</struts>



3、在浏览器中输入


http://localhost:8080/struts01/user?method:list  

或者

http://localhost:8080/struts01/user!list



三、基于通配符的方式

1、新建一个项目struts01

2、UserAction.java如下

package org.zttc.itat.action;

public class UserAction {
	public String addInput(){
		return "success";
	}
	public String add(){
		return "success";
	}
	public String list(){
		return "success";
	}
}

3、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>
    <package name="default" namespace="/" extends="struts-default">
    	<action name="*_*" class="org.zttc.itat.action.{1}Action" method="{2}">
    	<result name="success">/WEB-INF/{1}/{2}.jsp</result>
    </action>
    </package>
</struts>



4、在WebContext文件夹下的User(注意U是大写)文件夹下新建三个jsp页面

(注意更改文件的名字时候,一定要清空工作空间,因为windows部分大小写。 点击  Clean Tomcat Work Directory)

如一里的。


5、在浏览器上输入

http://localhost:8080/struts01/User_add ,结果

User Add


四、


1、在org.zttc.itat.action包中创建两个action


UserAction.java代码如下:

package org.zttc.itat.action;

public class UserAction {
	
	public String addInput(){
		return "success";
	}
	public String add(){
		return "success";
	}
	public String list(){
		return "success";
	}
}

RoleAction.java如下:


package org.zttc.itat.action;

public class RoleAction {
	public String add(){
		return "success";
	}
}

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>
    <package name="default" namespace="/" extends="struts-default">
    	<action name="*_*" class="org.zttc.itat.action.{1}Action" method="{2}">
    	<result name="success">/WEB-INF/{1}/{2}.jsp</result>
    </action>
    </package>
</struts>

3、在WEB-INF中新建文件夹Role,创建Add.jsp如下


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Role Add</h1>
</body>
</html>


在浏览器中输入:http://localhost:8080/struts01_2/Role_add.action,结果为:

Role Add


五、


对上面的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>
    <package name="default" namespace="/" extends="struts-default">
    	<action name="*_*" class="org.zttc.itat.action.{1}Action" method="{2}">
    	<result name="success">/WEB-INF/{1}/{2}.jsp</result>
	<!-- 客户端跳转 type用redirect,在UserAction中add方法的返回值是“r_list” -->
    	<result type="redirect" name="r_list">/{1}_list.action</result>
    </action>
    </package>
</struts>





对UserAction的add方法的返回值该为r_list,如下:


package org.zttc.itat.action;

public class UserAction {
	
	public String addInput(){
		return "success";
	}
	public String add(){
		return "r_list";
	}
	public String list(){
		return "success";
	}
}


在浏览器中输入:http://localhost:8080/struts01_2/User_add.action

会看见浏览器URL变为:http://localhost:8080/struts01_2/User_list.action,

显示结果为:

User List


六、

对Struts.xml 常量(constant标签)配置。

<constant name="struts.action.extension" value="action,ejb,html"/>表示   url的后缀可以为action,ejb,html中的任意一个


如:http://localhost:8080/struts01_2/User_list.ejb  可以访问

http://localhost:8080/struts01_2/User_list.html也可以访问



打开default.properties文件


可以找到如下值,对其配置在constant标签中即可。

struts.i18n.encoding=UTF-8

struts.objectFactory.spring.useClassCache = true

struts.objectFactory.spring.autoWire = name


















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值