一 Input因为年龄输入错误自动跳转回输入界面
1、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="default" namespace="/" extends="struts-default">
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/error.jsp</result>
</action>
<action name="*_*_*" method="{2}" class="com.cakin.{3}.{1}Action">
<result>/result.jsp</result>
<result name="add">/{2}.jsp</result>
<result name="update">/{2}.jsp</result>
</action>
<action name="LoginAction" method="login" class="com.cakin.action.LoginAction">
<result>/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
2、User.java
package com.cakin.po;
import java.util.List;
public class User {
private String username;
private String password;
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private List<User> booklist;
public List<User> getBooklist() {
return booklist;
}
public void setBooklist(List<User> booklist) {
this.booklist = booklist;
}
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;
}
}
3、login.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 'login.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>
<form action="LoginAction.action" method="post">
用户名:<input type="text" name="username">
密码:<input type="password" name="password">
书籍1:<input type="text" name="booklist[0].username">
书籍2:<input type="text" name="booklist[1].username">
年龄:<input type="text" name="age">
<input type="submit" value="提交" />
</form>
</body>
</html>
4、测试
二 通过addFieldError跳回到输入页码,并带错误提示
1、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="default" namespace="/" extends="struts-default">
<default-action-ref name="index"></default-action-ref>
<action name="index">
<result>/error.jsp</result>
</action>
<action name="*_*_*" method="{2}" class="com.cakin.{3}.{1}Action">
<result>/result.jsp</result>
<result name="add">/{2}.jsp</result>
<result name="update">/{2}.jsp</result>
</action>
<action name="LoginAction" method="login" class="com.cakin.action.LoginAction">
<result>/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
</struts>
2、login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ 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 'login.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>
<form action="LoginAction.action" method="post">
用户名:<input type="text" name="username"><s:fielderror name="username"></s:fielderror>
密码:<input type="password" name="password">
书籍1:<input type="text" name="booklist[0].username">
书籍2:<input type="text" name="booklist[1].username">
年龄:<input type="text" name="age">
<input type="submit" value="提交" />
</form>
</body>
</html>
3、LoginAction
package com.cakin.action;
import com.cakin.po.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport implements ModelDriven<User>{
private User user =new User();
public String login(){
if(user.getUsername()==null
||"".equals(user.getUsername()))
{
this.addFieldError("username", "用户名为空");
return INPUT;
}
System.out.println(user.getUsername());
System.out.println(user.getBooklist().get(0).getUsername());
System.out.println(user.getBooklist().get(1).getUsername());
return SUCCESS;
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
4、测试
三 通过validate方法实现调回到输入页码
1、LoginAction.jsp
package com.cakin.action;
import com.cakin.po.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class LoginAction extends ActionSupport implements ModelDriven<User>{
private User user =new User();
public String login(){
System.out.println(user.getUsername());
System.out.println(user.getBooklist().get(0).getUsername());
System.out.println(user.getBooklist().get(1).getUsername());
return SUCCESS;
}
@Override
public void validate() {
// TODO Auto-generated method stub
if(user.getUsername()==null
||"".equals(user.getUsername()))
{
this.addFieldError("username", "用户名为空");
//return INPUT;
}
}
@Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
}
2、测试
相关推荐
可能包含了演示Struts2 JSP标签的示例代码,帮助开发者理解如何在实际项目中使用这些标签。 通过学习和实践这个“struts2简单例子”,开发者可以逐步掌握Struts2的基本用法,为更复杂的Web应用开发打下坚实基础。...
在"struts-2.3.33-all.zip"压缩包中,"apps"文件夹可能包含了用于演示或测试目的的应用程序实例,这些应用展示了如何在Struts 2框架中实现文件上传。在实际开发中,通常会有一个或多个Action类负责接收和处理文件...
这个项目主要用于演示如何在Web应用程序中使用Struts2来处理基本的数据操作。Struts2是Java EE领域中一个流行的MVC(Model-View-Controller)框架,它提供了强大的动作调度、拦截器机制以及丰富的结果类型,使得...
在"Struts2_10"压缩包中,可能包含了用于演示或开发的源代码、示例配置文件,以及可能的测试数据。这些文件可以帮助你更好地理解并实现Struts2的多文件上传功能。你可以通过查看、运行这些文件来实践整个过程,从而...
3. 配置Struts2:在struts.xml配置文件中,设置全局结果类型`i18n`,这样Struts2就知道如何处理国际化请求。添加如下代码: ```xml <package name="default" namespace="/" extends="struts-default"> <global-...
这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...
- **Action映射:** 在struts.xml文件中配置Action映射,包括action的名称、类名、结果类型等。 - **视图展示:** 根据业务逻辑的执行结果,Action会选择不同的页面进行跳转展示,比如positive.jsp或negative.jsp。...
1. **配置struts-config.xml**:这是Struts框架的核心配置文件,我们需要在这里定义Action Mapping来指定特定的Action类处理上传请求。例如,添加如下配置: ```xml ``` 其中,`/upload`是请求路径,`...
总之,"Struts2文件上传"示例程序涵盖了Struts2框架下文件上传的基本流程,包括配置Action、编写处理文件的Java类、创建上传表单以及处理上传后的结果。这个过程涉及到Struts2的配置、Action、文件处理以及前端表单...
下面通过一个简单的示例来演示如何使用Struts 2实现文件上传功能。 1. **创建文件上传页面**:首先,需要创建一个HTML表单,用于收集用户上传的文件和其他相关信息。例如: ```html ...
此外,Struts2支持多种结果类型和模板技术,如JSP、FreeMarker、Velocity等,使得视图层的构建更加便捷。 在Struts2中,一个典型的流程包括以下步骤: 1. 用户发送HTTP请求到服务器。 2. 请求被Struts2的前端控制器...
在这个"struts2 上传 示例"中,可能还包括了对上传文件的一些验证和处理逻辑,比如限制文件类型、大小,以及展示上传结果等。你可以通过解压`Upload`文件,查看源代码和相关的资源文件来进一步学习和理解Struts2的...
- apache-commons-fileupload:这是Apache Commons库的一部分,是Struts2默认的上传组件,它能够处理multipart/form-data类型的表单数据。 - Servlet3.0的Part接口:Servlet3.0引入的新特性,允许直接通过Part接口...
- **案例程序**: 用于演示Struts2特性的示例项目。 - **配置文件**: 如`struts.xml`,用于配置Struts2的行为。 ### 开发步骤详解 #### 1. 搭建开发环境 首先,需要准备以下JAR包和配置文件: - **Struts2核心JAR...
Struts2允许在XML配置文件中定义Action的配置,包括结果类型、参数等,所以你可以根据需要定义不同的结果来处理不同的文件下载请求。 5. **安全注意事项**: 在实现文件上传和下载时,一定要注意安全性。避免路径...
在Struts2中,Action类负责处理用户的请求并返回相应的结果,而配置文件则用于配置Action、拦截器等组件。 ##### 2.2 jQuery简介 jQuery是一款轻量级的JavaScript库,以其简洁的语法、丰富的插件和强大的功能受到...
1. **配置Struts2的配置文件**:在struts.xml中,你需要为上传操作添加一个action配置,指定接收上传文件的方法和返回结果类型。 2. **创建上传表单**:HTML表单中需要包含`enctype="multipart/form-data"`属性,以...
本示例"MultiFileUpload_Struts2_多文件上传"旨在演示如何在Struts2框架下实现多文件上传功能。 首先,我们需要理解Struts2中的Action类,这是处理用户请求的核心。在多文件上传的场景中,我们需要创建一个Action类...
本篇文章将深入探讨如何在Struts2中使用验证框架,并通过一个简单的例子来演示其工作原理。 ### 一、Struts2验证框架概述 Struts2的验证框架主要负责在用户提交表单后验证输入数据。它可以基于XML配置文件或注解...