已登陆为例构造我们第一个struts2程序
导入struts2所必须的jar包,我已经打包上传了
首先不要忘记再web.xml中配置必须的过滤器
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
请求页login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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>login</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>
<form action="login.action" method="post">
username:<input type="text" name="username"><br/>
password:<input type="password" name="password"><br/>
<input type="submit" value="submit">
</form>
</body>
</html>
结果页result.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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 'result.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>
username:${requestScope.username }<br/>
password:${requestScope.password }<br/>
</body>
</html>
业务处理的javabean
package com.test.action;
public class LoginAction {
private String username;
private String password;
public String getUsername() {
return username;
}
//自动赋值是根据方法名字匹配不是根据属性名匹配
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute() throws Exception{
return "success";
}
}
流程处理的配置页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.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- name对应表单的action,class对应于处理类 -->
<action name="login" class="com.test.action.LoginAction">
<!-- result标签默认匹配success,这里可以省略name="success" -->
<result name="success">/result.jsp</result>
</action>
</package>
</struts>
程序的执行流程:
login.jsp中的action通过struts.xml找到LoginAction的execute方法进行处理,通过方法的返回字符串,找到对应的返回页面。
下面我们采用struts标签并加入验证来重新完成上面的过程
login2.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>login2</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>
<s:form action="login">
<s:textfield name="username" label="username"></s:textfield>
<s:password name="password" label="password"></s:password>
<s:submit label="submit"></s:submit>
</s:form>
</body>
</html>
LoginAction.java
package com.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
public String getUsername() {
return username;
}
//自动赋值是根据方法名字匹配不是根据属性名匹配
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//业务方法
public String execute() throws Exception{
if("hello".equals(this.getUsername().trim()) && this.getPassword().trim().equals("world")){
this.username="hello1";
return "success";
}else{
//错误信息将在用户名上面显示
this.addFieldError("username", "username or password error!");
return "failer";
}
}
//表单验证方法
public void validate() {
if(null == this.getUsername() || "".equals(this.getUsername().trim())){
//这里可以使用国际化
this.addFieldError("username", "username required");
}
if(null == this.getPassword() || "".equals(this.getPassword().trim())){
//这里可以使用国际化
this.addFieldError("password", "password required");
}
}
}
result.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 'result.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>
username:${requestScope.username }<br/>
password:${requestScope.password }<br/>
<%
//这里我要说明的是上面的el表达式与下面的完全不同
//等同于request.getAttribute("username")
//因为下面的语句得到的是真实的入参,而实际的后台属性是存在request中的
//如果后台变更了参数,取到的就不正确了,这点应该十分注意
//request.getParameter("username")
%>
</body>
</html>
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.0.dtd">
<struts>
<package name="struts2" extends="struts-default">
<!-- name对应表单的action,class对应于处理类 -->
<action name="login" class="com.test.action.LoginAction">
<!-- result标签默认匹配success,这里可以省略name="success" -->
<result name="success">/result.jsp</result>
<!-- 未通过validate方法的时候跳转到此 -->
<result name="input">/login2.jsp</result>
<result name="failer">/login2.jsp</result>
</action>
</package>
</struts>
分享到:
相关推荐
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置_swf
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置2
浪曦_Struts2应用开发系列_第1讲.Struts2入门与配置
Struts2是Apache软件基金会的产品,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是Action类,它是处理用户请求的中心。Action类通过配置文件或注解与URL进行映射,使得请求可以直接...
"spring_struts2_mybatis配置文件架包"提供了整合这三个框架所需的配置文件和依赖库,为开发者提供了一个快速入门的模板。这个包对于初学者来说极其有价值,因为它减少了配置工作,使他们能够更快地理解和实践这些...
通过这个入门教程,你将学会如何创建一个基本的Struts2应用,理解其工作原理,并逐步掌握Action、配置、拦截器、结果、OGNL等关键概念。实践是检验真理的唯一标准,动手实践这些知识点,将有助于你更好地理解和运用...
`struts2_helloworld`标签可能指的是一个简单的入门示例,它通常包括创建一个Action类、一个JSP页面和相关的Struts配置,以展示Struts2的基本工作流程。 总结来说,"Struts2_jquery_json1.0.zip"是一个综合实例,...
本文将深入讲解Struts2的入门与配置,以及其核心概念和原理,同时涵盖Struts2与其他技术如JSF和Ajax的整合。 **Struts2入门及基本配置** Struts2入门首先需要理解其基本架构。Struts2的核心是Action类,它是处理...
1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中,这是处理用户请求的核心。Action类的execute方法是处理请求的主要入口点。 2. **配置文件**:`struts.xml`是Struts2的主配置文件,定义了Action类、...
将**apps/struts2_blank.war/WEB-INF/lib**中的13个核心jar包导入项目中。这些jar包包括但不限于: - asm-* - commons-fileupload - commons-lang3 - commons-logging - freemarker - javassist - ognl - struts2-...
通过这个简单的入门案例,你可以学习到如何创建Action、编写配置文件、设计交互页面,并理解Struts2框架如何将所有这些组件协同工作。对于想要深入学习Struts2的人来说,这是一个很好的起点,可以帮助他们快速掌握...
入门Struts2,首先需要了解的是它的核心概念。Struts2的核心组件包括Action、Result、Interceptor(拦截器)等。Action是业务逻辑的执行者,负责处理用户请求;Result则定义了Action执行后的响应结果,如转发到一个...
这个"struts2入门例子"旨在帮助初学者理解Struts2的基本架构和核心功能,通过实际操作来学习如何配置Struts2框架以及实现页面跳转。 在Struts2中,`struts.xml`是核心配置文件,它是整个应用的入口点,负责定义动作...
本讲主要介绍Struts2的基础知识以及如何进行入门配置。 首先,Struts2是Struts1的升级版,它继承了Struts1的优点并解决了其在灵活性和可扩展性上的不足。Struts2的核心是Action类,它处理用户请求并调用业务逻辑。...
本入门篇主要涵盖了Struts2的基础配置、通配符使用、参数注入以及内置对象的获取,非常适合初学者进行学习。 1. **基础配置**:在Struts2中,基础配置主要通过`struts.xml`文件完成。这个文件定义了Action(动作)...
1. **Struts2入门及配置**: - **安装与环境搭建**:首先,你需要设置Java环境和Apache Tomcat服务器,然后通过Maven或手动方式将Struts2的依赖添加到项目中。 - **创建第一个Struts2应用**:创建一个简单的Hello ...
### Struts2入门实例教程详解 #### 一、环境搭建与基本配置 在开始学习Struts2框架之前,首先需要确保开发环境的正确搭建。根据提供的文档,所使用的开发工具为MyEclipse6,Web服务器为Tomcat6,Struts版本为...
1. `struts2-core.jar` 2. `struts2-convention-plugin.jar` 3. `struts2-java5-plugin.jar`(如果使用Java 5) 4. `struts2-spring-plugin.jar`(如果与Spring框架集成) 创建Struts2配置文件`struts.xml`。该文件...