参考网上的一些struts2的action用法,自己写了一个Demo记录一下。

原创 2016年08月31日 11:03:17

运行环境为myeclipse2014+tomcat8;下面是项目完成后的整个目录情况。

添加struts2相关架包,可以网上下载自己添加,也可以右键项目点击MyEclipse直接添加相关包。我这里是新建web项目后右键项目点击MyEclipse添加struts2(2.x)pro;这样项目自行添加struts.xml,并且web.xml文件会自行配置完成。

struts.xml代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<package name="struts2" extends="struts-default">  
            <action name="HelloStruts2" class="com.scyang.action.HelloStruts2">  
                <result>/HelloStruts.jsp</result>  
                <result name="add">/user_add.jsp</result>
            </action>  
        </package> 			
</struts> 

web.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Struts2Demo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>*.action</url-pattern>
  </filter-mapping>
</web-app>

HelloStruts2.java代码

package com.scyang.action;

import com.opensymphony.xwork2.ActionSupport;  
  
public class HelloStruts2 extends ActionSupport  
{  
    public final static String MESSAGE = "Struts2正在运行中!";  
      
    private String message;  
  
  
    /** 
     * @return the message 
     */  
    public String getMessage()  
    {  
        return message;  
    }  
  
  
    /** 
     * @param message the message to set 
     */  
    public void setMessage(String message)  
    {  
        this.message = message;  
    }  
  
  
    public String execute() throws Exception  
    {  
        setMessage(MESSAGE);  
        return SUCCESS;  
    }  
    public String add() throws Exception  
    {  
        setMessage("添加用户成功!");  
        return "add";  
    }  
}  



index.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    <a href="/Struts2Demo/HelloStruts2!execute.action">用户添加</a>
    <br>
    <a href="/Struts2Demo/HelloStruts2!add.action">用户更新</a>   
  </body>
</html>

HelloStruts.jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %> 
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'user_update.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <h2><s:property value="message" /></h2> 
  </body>
</html>

user_add.jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'user_add.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    <h2><s:property  value="message"/></h2> 
  </body>
</html>


输入http://localhost:8080/Struts2Demo/运行效果如下

Struts2之动态方法调用(优点:调用同一个action中的多个方法不需要在配置文件中写多个指向相同action类的的action节点只需要一个action节点就行)

在表单action值里指定所调用的action中的哪个方法而不是借助配置文件action节点的method属性 1 UserAction类 package org.action; import j...
  • u012871207
  • u012871207
  • 2015年02月02日 13:08
  • 1347

struts2 从一个action 跳转到另一个action的两种方法

从action1直接跳转到action2,有两种方法:  1. 需要保存前一个action的属性信息时使用,保存住action1的request对象:       action2  2...
  • Where_the_way
  • Where_the_way
  • 2014年03月13日 10:31
  • 2302

struts2单例Action带来的问题与思考

struts2单例Action带来的问题与思考
  • canot
  • canot
  • 2016年02月19日 13:17
  • 2987

关于struts2的namespace属性,在地址栏里直接访问action的方法 ,以及用一个jsp的表单跳到上面去

这里的form
  • u013803262
  • u013803262
  • 2014年11月24日 14:30
  • 1640

Struts2配置一个Action实现多个请求

Hibernate Annotation
  • linjingj
  • linjingj
  • 2013年07月29日 22:02
  • 9081

Struts2配置一个Action实现多个请求

struts2中的Action默认执行方法为execute(),尽管可以通过设置默认执行方法,但也难以改变一个一个方法的窘境。 那么,一个Action中多个方法,如何配置呢? 先上方法,简单举例:...
  • xiaoya5271
  • xiaoya5271
  • 2015年07月06日 21:55
  • 214

应用struts2的一个登陆小实例,Marker一下

struts2版本:2.3.15.3 在应用struts2时, 1)下载struts2版本,将其/lib下的以下jar文件拷贝到你所建项目的WEB-INF/lib目录下 2)在项目文件夹下新建三个js...
  • mynameislikaiqiang
  • mynameislikaiqiang
  • 2013年12月18日 19:33
  • 477

Struts2 action中一个方法返回多个页面

很多时候,一个页面或不同页面中有多个form表单需要提交到action中的同一个方法中,这时,可在form表单提交的action后加参数。具体做法如下方便起见,在同一个页面建两个form 标签,提交到...
  • cbs9588
  • cbs9588
  • 2016年07月03日 15:39
  • 1946

struts2 文件上传(指定上传图片,单文件上传和批量上传放在一个jsp和Action中)

1.添加jar Commons-fileupload.jar, Commons-io.jar 2.定义Action类 package com.test.action; import ja...
  • liushuaileon
  • liushuaileon
  • 2012年04月07日 22:06
  • 1143

Struts2之一个Action包含多个控制处理逻辑

http://www.cnblogs.com/freeabyss/p/3290297.html 一、使用Action的动态方法调用     如果一个页面包含多个按钮,系统分别提交给Ac...
  • caolaosanahnu
  • caolaosanahnu
  • 2014年05月23日 16:34
  • 632
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:参考网上的一些struts2的action用法,自己写了一个Demo记录一下。
举报原因:
原因补充:

(最多只允许输入30个字)