`
夜之son
  • 浏览: 26311 次
  • 性别: Icon_minigender_1
  • 来自: 信阳
社区版块
存档分类
最新评论

struts2类型转换自定义

阅读更多

今天在做struts2的类型转换时出了一些问题,主要是想使用中文来替代框架的那种类型转换错误时的信息。

先来看看struts.xml文件:

 

<?xml version="1.0" encoding="GB18030"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="TestLei" extends="struts-default">
	<action name="zhuce" class="zq.Regis">
	<result name="success">/index.jsp</result>
	<result name="input">/regis.jsp</result>
	</action>
	</package>
</struts>
 

 

其次是一个简单的输入页面regis.jsp

 

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!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=GB18030">
<title>Insert title here</title>
</head>
<body>
<h1>忧郁的分割线</h1>
<hr/>
<s:form action="zhuce">
<s:textfield name="name" label="姓名"></s:textfield>
<s:textfield name="age" label="年龄"></s:textfield>
<s:textfield name="height" label="身高"></s:textfield>
<s:submit label="提交"></s:submit>
</s:form>
<s:debug></s:debug>
</body>
</html>

 

 接下来是一个简单的action

 

package zq;

import com.opensymphony.xwork2.ActionSupport;

public class Regis extends ActionSupport {
	private String name;
	private int age;
	private int height;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getHeight() {
		return height;
	}
	public void setHeight(int height) {
		this.height = height;
	}
	@Override
	public String execute() throws Exception {
		return "success";
	}
	
}

 

 这就是实验的主要内容,起初我在regis.jsp中输入正确的内容,当然会通过action转到index.jsp中,后来在age与height中输入了字符串后,提示了如下内容:

Invalid field value for field "age"

Invalid field value for field "height"

,这样的提示看到很让人难过,我就写了个Regis.properties文件来解决这个问题,内容如下:

 

invalid.fieldvalue.name=请输入字母
invalid.fieldvalue.age=请输入数字
invalid.fieldvalue.height=请输入数字

 

 看到网上的可以,希望着这样可以解决,可是很不幸。这段代码在保存的时候就过不去,我的页面编码位中文(gb18030),提示着中文在这个文件下不能保存。即使保存了,视图中显示的也是乱码,这样就没有达到预期的效果,后来在网上看到有人说可以使用native2ascii命令来改变文件的编码方式,后来我在dos下使用该命令来转码,可惜也失败了,在保存的时候就是乱码,就没有成功。后来静下来看看有人说可以单独来使用该命令,我是使用将Regis.properties文件的内容保存到一个1.txt文件中,然后使用这个命令:

native2ascii -encoding gbk 1.txt 2.txt

然后将2.txt文件打开,看到的那内容如下:

 

invalid.fieldvalue.name=\u8bf7\u8f93\u5165\u5b57\u6bcd
invalid.fieldvalue.age=\u8bf7\u8f93\u5165\u5b57\u6bcd
invalid.fieldvalue.height=\u8bf7\u8f93\u5165\u5b57\u6bcd

 然后将2.txt文件改名为Regis_zh_CN.properties,并将该文件拷到与Regis.java同一个目录下,即zq目录下,然后在运行,想要的结果出现了,

 

 

Invalid field value for field "age"

Invalid field value for field "height"

在视图中换成了:

 

请输入数字

请输入数字

忙活了一段终于有些收获了,我想到既然不能在myeclipse中保存,那么就可以将这个文件拿走,然后使用native2ascii命令来将其转换成另一个属性文件,这样就更省事了。希望这些能够帮上那些跟我遇到一样问题的朋友们,也希望高手们不惜赐教一些高招。更好的解决这样的问题。

 

 

1
0
分享到:
评论

相关推荐

    Struts自定义类型转换器

    本文主要介绍Struts1和Struts2中的自定义类型转换器,并探讨其实现机制。 #### 二、Struts1中的自定义类型转换器 在Struts1中,自定义类型转换器主要是通过继承`com.sun.org.apache.commons.beanutils.Converter`...

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    本篇文章将深入探讨Struts2中的类型转换机制,包括常规类型转换、自定义类型转换以及错误处理。 首先,我们来看**常规类型转换**。Struts2框架内建了一套完整的类型转换器,能够自动处理常见数据类型,如String、...

    Struts2自定义类型转换

    ### Struts2自定义类型转换:深入解析与实践 #### 引言 在Web开发中,数据类型转换是一项常见的需求,特别是在用户输入的数据与后端处理的数据类型不一致时。Struts2框架提供了强大的类型转换机制,允许开发者...

    struts2 类型转换器

    在描述中提到的博客链接(由于实际无法访问,以下内容基于Struts2类型转换器的通用知识)通常会详细解释如何创建和注册自定义类型转换器。开发者可以实现`org.apache.struts2.util.TypeConverter`接口或继承`org....

    struts2自定义数据类型转换练习

    本练习主要关注如何在Struts2中实现自定义的数据类型转换,以满足特定业务需求。 首先,我们需要了解Struts2的数据转换机制。当用户提交表单数据时,Struts2会通过ActionContext获取到这些数据,并尝试将其转换为...

    struts2自定义类型转换器

    这就是"struts2自定义类型转换器"的主题。 首先,理解Struts2的类型转换机制。当Struts2接收到HTTP请求时,它会尝试将请求参数与Action类的属性进行绑定。这个过程涉及到了类型转换,Struts2内置了一套转换器机制,...

    STRUTS2类型转换

    总的来说,Struts2的类型转换机制为开发者提供了灵活的输入数据处理方式,既可以利用内置转换,也可以自定义转换器以适应复杂的业务场景。正确理解和使用这一机制,可以提高代码的可维护性和用户体验,确保数据的...

    传智播客struts2.1源代码_自定义类型转换器

    自定义类型转换器需要实现`org.apache.struts2.util.TypeConverter`接口,或者继承`org.apache.struts2.convention.converters.DefaultConversionProvider`基类,覆盖`convertValue()`方法。然后,通过在Action类或...

    struts2类型转换和国际化

    3. 在调用setter方法前,Struts2会检查该属性是否有自定义的类型转换器。如果存在,它会在Action同级目录下的`action名称-conversion.properties`文件中查找转换规则。若在`src`目录下的`-conversion.properties`...

    struts 2.0 自定义类型转换器 注册类型转换器 入门实例 简单实例

    自定义类型转换器是Struts 2的核心特性之一,允许开发者根据业务需求定制数据转换规则。以下将详细介绍如何创建、注册以及使用自定义类型转换器。 1. **创建自定义类型转换器** - 创建一个类,实现`org.apache....

    struts2简单实例(类型转换)

    在这个"struts2简单实例(类型转换)"中,我们将探讨Struts2如何处理不同类型的数据转换,以及如何创建一个简单的演示应用。 首先,让我们理解什么是类型转换。在Web应用程序中,用户通过表单提交的数据通常是字符...

    struts2类型转换

    2. **Struts2类型转换器** Struts2的核心组件`ValueStack`负责管理Action对象,并使用`ConversionService`接口处理类型转换。默认情况下,Struts2提供了一系列内置的转换器,可以处理基本数据类型和一些常见的Java...

    struts2自定义类型转换、拦截器实例练习

    本实例练习旨在帮助你深入理解Struts2的工作原理,特别是自定义类型转换和拦截器的使用。 首先,让我们详细探讨Struts2的MVC架构。在MVC模式中,Model代表业务逻辑,View负责展示数据,而Controller则是两者之间的...

    Struts2 自定类型转换器(三十四)

    在Struts2框架中,自定义类型转换器是开发者为了满足特定需求,对框架默认的类型转换机制进行扩展的一种方式。Struts2允许我们创建自己的转换器类来处理输入数据,确保模型对象的属性能够正确地被转换为预期的数据...

    struts2如何配置与自定义类型转换

    Struts2是一个强大的MVC框架,它在处理用户请求时涉及到数据类型的转换,这在处理复杂的表单数据或者自定义对象时尤其重要。本篇文章将详细介绍如何在Struts2中进行配置与自定义类型转换。 首先,Struts2的配置主要...

    struts2类型转换 拦截器 校验的例子

    Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...

    Struts2类型转换与输入校验 .zip

     熟悉和掌握Struts2自定义类型转换。  熟悉和掌握Struts2内建校验的操作方法  实验环境与设备:  已经接入局域网的网络实验室,机器上装有IE浏览器等;  strtus2.5.8  实验内容: (1) 编写一个...

Global site tag (gtag.js) - Google Analytics