Struts2 使用标签调用Action

1.method标签

格式:<s:submit name="method:方法名" value="按钮名">

其实很简单,举个例子说明:

(1)action类,用来处理用户请求。methodPrefixAction.java

复制代码
 1 package com.action;
 2 
 3 public class MethodPrefixAction {
 4     public String execute1(){
 5         System.out.println("execute1().....");
 6         return null;
 7     }
 8     public String execute2(){
 9         System.out.println("execute2().....");
10         return null;
11     }
12 }
复制代码

在一个类中有两个函数,分别针对用户请求调用。

(2)struts.xml配置

复制代码
 1 <?xml version="1.0" encoding="GB2312" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd">
 5 
 6 
 7 <struts>
 8     <package name="com.action" extends="struts-default">
 9         <action name="methodAction" class="com.action.MethodPrefixAction">
10         </action>
11     </package>
12 
13 </struts>
复制代码

(3)jsp文件,即用户界面层。method.jsp

复制代码
 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags"%>
 3 
 4 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 5 <html>
 6   <head>  
 7     <title>method.jsp</title>
 8 
 9   </head>
10   
11   <body> 
12     <s:form action="methodAction">
13         <s:submit name="method:execute1" value="提交"></s:submit>
14         <s:submit name="method:execute2" value="提交"></s:submit>
15     </s:form>
16   </body>
17 </html>
复制代码

第13、14行是关键,根据method标签后面的方法名去调用相应的方法。

2.action标签

格式:<s:action name="actionname" executeResult="true">

(1)ActionPrefixedAction.java

复制代码
 1 package com.action;
 2 
 3 import org.apache.struts2.ServletActionContext;
 4 
 5 public class ActionPrefixAction {
 6     private String msg;
 7     public String execute()throws Exception {
 8         ServletActionContext.getRequest().setAttribute("ActionString", "这是default默认返回值,假设是welcome");
 9         return "success";
10     }
11     public String getMsg(){
12         return msg;
13     }
14     public void setMsg(String msg){
15         this.msg = msg;
16     }
17 }
复制代码

(2)struts.xml

复制代码
 1 <?xml version="1.0" encoding="GB2312" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
 4     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
 7 <struts>
 8     <package name="com.action" extends="struts-default">
 9         <action name="actionAction1" class="com.action.ActionPrefixAction">
10                 <result name="success">success.jsp</result>
11         </action>
12         <action name="actionAction2" class="com.action.ActionPrefixAction" method="default">
13                 <result name="success">success.jsp</result>
14         </action>
15     </package>
16 
17 </struts>
复制代码

(3)success.jsp用来显示结果界面

复制代码
 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags" %>
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>  
 6     <title>action.jsp</title>
 7   </head>
 8   
 9   <body>
10     <h3>Action返回的效果-success.jsp页面</h3>
11     <s:property value="msg"/>
12     <s:property value="#attr.ActionString"/>
13   </body>
14 </html>
复制代码

(4)action.jsp 用户交互界面,但是这里代码比较简单,action标签相当于提交了表单,所以无需用户输入

复制代码
 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
 2 <%@ taglib prefix="s" uri="/struts-tags" %>
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>  
 6     <title>action.jsp</title>
 7   </head>
 8   
 9   <body>
10     <div>下面的action标签将会显示结果的返回界面:::</div>
11        <br/>
12        <s:action name="actionAction1" executeResult="true"></s:action>
13        <br/> 
14        ===========================================================
15        <div>下面的action标签将会显示dodefault方法的结果界面:::</div>
16        <s:action name="actionAction2" executeResult="true" ignoreContextParams="true"/>
17        <br/>
18        ===========================================================
19        <div>使用Action标签,但是executeResult为false,则不会显示结果界面:::</div>
20        <s:action name="actionAction2" executeResult="false"></s:action>
21   </body>
22 </html>
复制代码

最后,配置编译后,输入 http://localhost:8080/Struts2Proj/action.jsp?msg=helloworld 其中Struts2Proj 是工程名。

显示结果如下:

3.Redirect标签和Redirect-action标签

这两个标签分别用于将请求重定向到URL或Action.

格式:<s:submit name="redirect:url" value="buttonname"/>

格式:<s:submit name="redirect-action:action-name" value="buttonname">

重定向到URL,点击按钮后,页面会重定向到指定网页,但是action按钮则重定向到指定的action,不过Redirect-action标签并不提交表单域数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值