`
cakin24
  • 浏览: 1396565 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

关于结果处理类型input的代码演示-深入Struts2

阅读更多
一 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、测试


 
  • 大小: 22.3 KB
  • 大小: 23.4 KB
1
0
分享到:
评论

相关推荐

    struts2简单例子

    可能包含了演示Struts2 JSP标签的示例代码,帮助开发者理解如何在实际项目中使用这些标签。 通过学习和实践这个“struts2简单例子”,开发者可以逐步掌握Struts2的基本用法,为更复杂的Web应用开发打下坚实基础。...

    struts-2.3.33-all.zip

    在"struts-2.3.33-all.zip"压缩包中,"apps"文件夹可能包含了用于演示或测试目的的应用程序实例,这些应用展示了如何在Struts 2框架中实现文件上传。在实际开发中,通常会有一个或多个Action类负责接收和处理文件...

    struts2CRUD

    这个项目主要用于演示如何在Web应用程序中使用Struts2来处理基本的数据操作。Struts2是Java EE领域中一个流行的MVC(Model-View-Controller)框架,它提供了强大的动作调度、拦截器机制以及丰富的结果类型,使得...

    Struts2多文件上传

    在"Struts2_10"压缩包中,可能包含了用于演示或开发的源代码、示例配置文件,以及可能的测试数据。这些文件可以帮助你更好地理解并实现Struts2的多文件上传功能。你可以通过查看、运行这些文件来实践整个过程,从而...

    Struts2国际化 录象演示

    3. 配置Struts2:在struts.xml配置文件中,设置全局结果类型`i18n`,这样Struts2就知道如何处理国际化请求。添加如下代码: ```xml &lt;package name="default" namespace="/" extends="struts-default"&gt; &lt;global-...

    Struts2+上传文件源码

    这个"Struts2+上传文件源码"是一个演示如何在Struts2框架下实现文件上传的示例代码。 首先,我们来理解上传文件的基本流程。在Struts2中,文件上传是通过`Commons FileUpload`库来处理的,这是一个Apache提供的开源...

    struts2初学者入门教程

    - **Action映射:** 在struts.xml文件中配置Action映射,包括action的名称、类名、结果类型等。 - **视图展示:** 根据业务逻辑的执行结果,Action会选择不同的页面进行跳转展示,比如positive.jsp或negative.jsp。...

    struts1.0的上传代码

    1. **配置struts-config.xml**:这是Struts框架的核心配置文件,我们需要在这里定义Action Mapping来指定特定的Action类处理上传请求。例如,添加如下配置: ```xml ``` 其中,`/upload`是请求路径,`...

    Struts2文件上传

    总之,"Struts2文件上传"示例程序涵盖了Struts2框架下文件上传的基本流程,包括配置Action、编写处理文件的Java类、创建上传表单以及处理上传后的结果。这个过程涉及到Struts2的配置、Action、文件处理以及前端表单...

    struts笔记

    下面通过一个简单的示例来演示如何使用Struts 2实现文件上传功能。 1. **创建文件上传页面**:首先,需要创建一个HTML表单,用于收集用户上传的文件和其他相关信息。例如: ```html ...

    struts2 hibernate project

    此外,Struts2支持多种结果类型和模板技术,如JSP、FreeMarker、Velocity等,使得视图层的构建更加便捷。 在Struts2中,一个典型的流程包括以下步骤: 1. 用户发送HTTP请求到服务器。 2. 请求被Struts2的前端控制器...

    struts2 上传 示例

    在这个"struts2 上传 示例"中,可能还包括了对上传文件的一些验证和处理逻辑,比如限制文件类型、大小,以及展示上传结果等。你可以通过解压`Upload`文件,查看源代码和相关的资源文件来进一步学习和理解Struts2的...

    struts2学习笔记三

    - apache-commons-fileupload:这是Apache Commons库的一部分,是Struts2默认的上传组件,它能够处理multipart/form-data类型的表单数据。 - Servlet3.0的Part接口:Servlet3.0引入的新特性,允许直接通过Part接口...

    struts2 笔记

    - **案例程序**: 用于演示Struts2特性的示例项目。 - **配置文件**: 如`struts.xml`,用于配置Struts2的行为。 ### 开发步骤详解 #### 1. 搭建开发环境 首先,需要准备以下JAR包和配置文件: - **Struts2核心JAR...

    struts2写的上传下载 支持批量

    Struts2允许在XML配置文件中定义Action的配置,包括结果类型、参数等,所以你可以根据需要定义不同的结果来处理不同的文件下载请求。 5. **安全注意事项**: 在实现文件上传和下载时,一定要注意安全性。避免路径...

    Struts2整合jQuery实现Ajax功能

    在Struts2中,Action类负责处理用户的请求并返回相应的结果,而配置文件则用于配置Action、拦截器等组件。 ##### 2.2 jQuery简介 jQuery是一款轻量级的JavaScript库,以其简洁的语法、丰富的插件和强大的功能受到...

    struts框架

    1. **配置Struts2的配置文件**:在struts.xml中,你需要为上传操作添加一个action配置,指定接收上传文件的方法和返回结果类型。 2. **创建上传表单**:HTML表单中需要包含`enctype="multipart/form-data"`属性,以...

    MultiFileUpload_Struts2_多文件上传

    本示例"MultiFileUpload_Struts2_多文件上传"旨在演示如何在Struts2框架下实现多文件上传功能。 首先,我们需要理解Struts2中的Action类,这是处理用户请求的核心。在多文件上传的场景中,我们需要创建一个Action类...

    Struts2中使用验证框架的简单例子

    本篇文章将深入探讨如何在Struts2中使用验证框架,并通过一个简单的例子来演示其工作原理。 ### 一、Struts2验证框架概述 Struts2的验证框架主要负责在用户提交表单后验证输入数据。它可以基于XML配置文件或注解...

Global site tag (gtag.js) - Google Analytics