• 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标签并不提交表单域数据。


     







     

  • 相关阅读:
    LDAP2-创建OU创建用户
    GNE: 4行代码实现新闻类网站通用爬虫
    为什么每一个爬虫工程师都应该学习 Kafka
    新闻网页通用抽取器GNEv0.04版更新,支持提取正文图片与源代码
    写了那么久的Python,你应该学会使用yield关键字了
    新闻类网页正文通用抽取器
    为什么Python 3.6以后字典有序并且效率更高?
    为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入
    数据工程师妹子养成手记——数据库篇
    一行js代码识别Selenium+Webdriver及其应对方案
  • 原文地址:https://www.cnblogs.com/lihuiyy/p/2411601.html
Copyright © 2020-2023  润新知