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

第2讲 --Struts2的类型转换

阅读更多

 

 

本节目的:

 

1.改写login.jsp 使用struts2标签的形式,这样才可以完成 2

 

2.让Action集成自ActionSupport ,重写其中的validate()方法 完成校验

 

3.判断用户名为 hello ,密码为 world 才到成功页面

 

 

步骤:

  1.先把标签导入进来,标签的tld 文件在struts-2.0.14-all\struts-2.0.14\lib\struts2-core-2.0.14\META-INF\struts-tags.tld ,放在WEB-INF下

 

2.使用标签改写页面

 

<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib uri="oscache" prefix="cache"%>
<%@ taglib uri="/WEB-INF/struts-tags.tld" prefix="s"%>
<%@page import="java.util.Date"%>
<HTML>
<body>

没有缓存的日期: <%= new Date() %><p>
<!--自动刷新-->
<cache:cache time="30">
每30秒刷新缓存一次的日期: <%= new Date() %> 
</cache:cache>
<!--手动刷新-->
<cache:cache key="testcache">
手动刷新缓存的日期: <%= new Date() %> <p>
</cache:cache>
<a href="cache2.jsp">手动刷新</a>


	<s:form action="login.action" method="post">
	<s:textfield name="username" label="用户名"></s:textfield>
	<s:password name="password" label="密码"></s:password>

	<s:submit  value="提交"></s:submit>
	</s:form>
</body>

</HTML>

 

3.写action

package cn.com.xinli.test.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport
{
 private String username;
 private String password;
 
 /*
  * 客户端和Action的匹配是按方法的名字
  * 而不是属性名字
  * 比如客户端发过来的是password则会找setPassword
  * 而不是找属性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()) || !"world".equals(this.getPassword().trim()))
  {
   /*如果出现错误,错误信息加在username字段的上面*/
   this.addFieldError("username", "用户名或密码错误!");
   return "failer";
  }
  /*小写,默认会找result标签配置的页面*/
  return "success";
 }
 @Override
 public void validate()
 {
  if(null==this.getUsername() || "".equals(this.getUsername().trim()))
  {
   /*增加一个错误,这里可以使用国际化*/
   /*第一参数为表单字段的名字,第2个参数为表单错误信息*/
   this.addFieldError("username", "用户名不能为空!");
  }
  if(null==this.getPassword() || "".equals(this.getPassword().trim()))
  {
   /*增加一个错误,这里可以使用国际化*/
   /*第一参数为表单字段的名字,第2个参数为表单错误信息*/
   this.addFieldError("password", "密码不能为空不能为空!");
  }
 }
 
}

 

4.写配置文件

<?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">
		<action name="login" class="cn.com.xinli.test.action.LoginAction">
			<result>/result.jsp</result>
			<!-- input 为规定的写法,表明表单验证失败的时候转向的页面 -->
			<result name="input">/login.jsp</result>
			<result name="failer">/login.jsp</result>
		</action>
	</package>
	
   

</struts>

 

5.打开tomcat,运行http://localhost:9090/struts2/login.jsp

 

分享到:
评论

相关推荐

    struts2(1-7)源码 struts2学习入门 源码学习

    struts 初步认识Struts2并部署验证 struts2 将要进行自定义类型转换的点数据从1个增加到3个 struts3 进行全局的类型转换 struts4 使用Struts2中内部类中的方法进行自定义类型转换...strrts10 第七讲struts2中的案例

    struts2学习笔记三(第3讲.Struts2的类型转换)

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/859890

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...

    JavaWeb系列教学视频(20集)

    20集)资源目录:【】JavaWeb视频教学-第10讲JSP标准标签库(4)【】JavaWeb视频教学-第11讲Struts2入门【】JavaWeb视频教学-第12讲Struts2中的配置文件【】JavaWeb视频教学-第13讲Struts2的类型转换【】JavaWeb视频...

    struts2的输入校验

    重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在LoginAction一个目录下,命名方式以LoginAction-validation.xml 2.开始添加LoginAction-validation.xml的校验内容,我主要是介绍struts2...

    Struts2 in action中文版

    第二部分 核心概念:动作、拦截器和类型转换 第3章 使用Struts 2动作 36 3.1 Struts 2动作简介 36 3.2 打包动作 39 3.2.1 Struts 2公文包示例应用程序 39 3.2.2 组织你的包 39 3.2.3 使用struts-default包中的组件 ...

    STRUTS 2完全学习手册.pdf

    《Struts 2完全学习手册》全面讲述Struts 2开发框架的知识,包括Struts 2中配置文件的详细讲解、国际化与异常处理、数据类型的转换、数据的输入校验、Struts 2强大的标签库、Struts 2中文件的上传与下载、Struts 2对...

    struts2学习笔记四(第4讲.Struts2的类型转换续)

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/861529

    《Struts2讲义》吴峻申【电子书】

    第2章 Web基础技术简介第3章 Struts2核心技术第4章 另一Struts2核心技术:拦截器第5章 Struts2标签库第6章 Struts2非JSP视图技术第7章 Struts2类型转换技术第8章 Struts2输入校验第9章 Struts2国际化第10章 Struts2...

    struts2讲义_吴峻申

    7.1 Struts2类型转换使用介绍 135 7.1.1 基本数据类型转换功能 135 7.1.2 List集合类型数据类型转换功能 138 7.1.3 Set集合类型数据类型转换功能 141 7.2 类型转换发生异常处理方案 144 7.2.1 Struts2自带异常提示 ...

    struts2总结第二章

    Struts2总结第二章 一、 局部类型转换: a) 写Date类型转换类 b) 在要进行Date类型转换的类的同一包下,新建一个properties文件 i. 名称为Date类型的数据所在的类的名称-conversion.properties ii. 内容为 name:该...

    深入浅出Struts2(附源码)

    第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 ...

    struts2 详解文档

    第一个Struts 2应用开发 解决Struts 2配置文件无提示问题 Action名称的搜索顺序 Action配置的各项默认值 result配置的各种视图转发类型 为Action属性注入值 指定Struts 2处理的请求后缀 Struts 2的处理...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    NULL 博文链接:https://zhaolianyang.iteye.com/blog/870600

    深入浅出struts2

    Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减小了框架内部的耦合度,而HTML表单中的输入项都被转换成了恰当的类型以供action使用。开发人员还可以通过拦截器(可以自定义拦截器...

    深入浅出Struts2

    第2章 初识Struts 第3章 动作与结果 第4章 OGNL 第5章 表单标签 第6章 通用标签 第7章 类型转换 第8章 输入验证 第9章 消息处理与国际化 第10章 Model Driven和Preparable拦截器 第11章 持久层 第12章 文件的上传 第...

    struts2 ppt 教程 十章

    第一章:认识体验Struts 2 第二章:struts2架构剖析 第三章:struts2配置详解 第四章:struts2中的OGNL 第五章:struts2标签库 第六章:struts2国际化 第七章:struts2验证 ...第十章:struts2类型转换

Global site tag (gtag.js) - Google Analytics