Struts2入门实例

简介:

目录结构:


二、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>struts2InAction</display-name>
  <welcome-file-list>
 
    <welcome-file>index.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>/*</url-pattern>
  </filter-mapping>
</web-app>



struts。xml


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

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">
       <action name="login" class="struts2InAction.LoginAction" method="login">
       		<result name="success">/WEB-INF/view/success.jsp</result>
       		<result name="fail">/WEB-INF/view/fail.jsp</result>
       	
       </action>
       
       <action name="toLogin" class="struts2InAction.ToLoginAction" method="login">
       
       		<result name="success">/WEB-INF/view/login.jsp</result>
       		
       	
       </action>
   
    </package>

</struts>



index.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>
<a href="toLogin">登录</a>
<br>

</body>
</html>


login.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>登录</title>
</head>
<body>

<form action="login" method="post">
姓名:<input type="text" name="name"></input>
<br>
<button type="submit">登  录</button>
</form>
</body>
</html>



success.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">
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>
</head>
<body>

	<h2>welcome</h2>

	<h3><s:property value="name"/></h3>

</body>
</html>


fail.jap

<%@ 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>登录</title>
</head>
<body>
<h2>fail</h2>

</body>


LoginAction.java

<pre name="code" class="java">package struts2InAction;


import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String name;
	public void setName(String name) {
		this.name = name;
	}
	
	//必须写,要不然在页面得不到
	public String getName() {
		return name;
	}
	public String login() {
		
		if("zs".equals(name))
		{
			
			setName(name);
			System.out.println(">>>>"+name);
			return "success";
		}
		else
		{
			return "fail";
		}
		
	}
}

 

ToLoginAction.java

package struts2InAction;

import com.opensymphony.xwork2.ActionSupport;

public class ToLoginAction extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	
	
	public String login() {
	
			return "success";
		
		
	}
}




改进:

ToLoginAction.java只做了转发页面的功能,可以删除。

只需把struts.xml改为:

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

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">
       <action name="login" class="struts2InAction.LoginAction" method="login">
       		<result name="success">/WEB-INF/view/success.jsp</result>
       		<result name="fail">/WEB-INF/view/fail.jsp</result>
       	
       </action>
       
       <action name="toLogin" >
       
       		<result >/WEB-INF/view/login.jsp</result>
       		
       	
       </action>
   
    </package>

</struts>



目录
相关文章
|
数据采集 机器学习/深度学习 数据可视化
【办公自动化】使用Python批量处理Excel文件并转为csv文件
【办公自动化】使用Python批量处理Excel文件并转为csv文件
560 0
|
Java API 图形学
JAVA读取EMF文件并转化为PNG,JPG,GIF格式
JAVA读取EMF文件并转化为PNG,JPG,GIF格式 使用第三方库下载地址为:http://java.freehep.org/vectorgraphics/index.html 主要思路: 使用EMFInputStream读取EMF文件,然后使用EMFRenderer对象将EMF绘制到创建 好的空白的BufferedImage里面。
2308 0
|
机器学习/深度学习 监控 人机交互
深度学习之视频中的姿态跟踪
基于深度学习的视频姿态跟踪是一项用于从视频序列中持续检测和跟踪人体姿态的技术。它能够识别人体的2D或3D关键点,并在时间维度上进行跟踪,主要应用于人机交互、体育分析、动作识别和虚拟现实等领域。
371 3
|
前端开发 JavaScript 定位技术
一、前端高德地图注册、项目中引入、渲染标记(Marker)and覆盖物(Circle)
文章介绍了如何在前端项目中注册并使用高德地图API,包括注册高德开放平台账号、引入高德地图到项目、以及如何在地图上渲染标记(Marker)和覆盖物(Circle)。
530 1
|
Linux iOS开发 MacOS
Python系统编程高手进阶:跨平台兼容性?小菜一碟💪
【9月更文挑战第6天】当我们探讨Python系统编程时,跨平台兼容性至关重要。Python凭借其解释型语言特性和多平台解释器,确保了代码能够在Windows、Linux、macOS等多种环境中顺畅运行。本文将介绍Python跨平台运行的基本原理,以及如何处理文件路径差异和系统调用等问题,助你轻松应对跨平台挑战。
387 1
|
编解码 开发工具 Android开发
iOS平台如何实现毫秒级延迟的RTMP|RTSP播放器
在我的blog里面,最近很少有提到iOS平台RTMP推送|轻量级RTSP服务和RTMP|RTSP直播播放模块,实际上,我们在2016年就发布了iOS平台直播推拉流、转发模块,只是因为传统行业,对iOS的需求比较少,所以一直没单独说明,本文主要介绍下,如何在iOS平台播放RTMP或RTSP流。
317 6
|
人工智能 Unix
[AI Fabric] 解锁AI的未来:深入探索Fabric开源框架
Fabric 是一个旨在通过人工智能增强人类能力的开源框架,解决了 AI 集成的难题。通过分解问题并应用 AI 解决方案,Fabric 帮助用户应对日常挑战,实现技术与人类的完美结合。
|
机器学习/深度学习 Ubuntu Linux
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
在Linux中,如何按照该要求抓包:只过滤出访问http服务的,目标ip为192.168.0.111,一共抓1000个包,并且保存到1.cap文件中?
|
编解码 算法 BI
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
增强型植被指数EVI、ndvi数据、NPP数据、GPP数据、土地利用数据、植被类型数据、降雨量数据
|
流计算
Flink CDC里关于doris的动态分区问题,对以及建好的动态分区表,可以再次修改历史分区的保留时间嘛?
【1月更文挑战第24天】【1月更文挑战第117篇】Flink CDC里关于doris的动态分区问题,对以及建好的动态分区表,可以再次修改历史分区的保留时间嘛?
435 6