文档章节

Struts2---->中文乱码

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 423
阅读 1
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

1、<form action="user!add" method="post"> 必表单提交方法必须为post,如果是get就出错

Action1.java

package com.ncepu.struts2;

public class Action1 {

	private String name;
	private String password; //传递参数的时候  用的是方法 而不是赋给属性,
	                       //所以说将password改成userpassword下面方法setPassword不变也可以。	                       

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String add() {
		
        System.out.println("添加的name="+name+"添加的password="+password);
		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>
	<constant name="struts.devMode" value="true" />
	<package name="default" namespace="/" extends="struts-default">
		<action name="user" class="com.ncepu.struts2.Action1">
			<result name="success">
				/add.jsp
            </result>
		</action>
	</package>
</struts>

index.jsp

<body>
			<!--必须为post-->
		<form action="user!add" method="get">
			姓名2
			<input type="text" name="name">
			密码1
			<input type="text" name="password">
			<input type="submit" value="submit" />
		</form>
	</body>

后台输出为:添加的name=°?????·?添加的password= °?·??÷

解决方法:
1、必须将<form action="user!add" method="post"> 必表单提交方法必须为post才正确。

2、对请求参数重新编码(参照http://blog.csdn.net/ncepustrong/article/details/7927027)

String name = new String(request.getParameter("name").getBytes("ISO8859-1"));
String password= new String(request.getParameter("password").getBytes("ISO8859-1"));

在此使用到了request,必须得到。

package com.ncepu.struts2;

import java.io.UnsupportedEncodingException;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Action1 extends ActionSupport {

	private static final long serialVersionUID = 1L;
	HttpServletRequest request;
	private String name;
	private String password; // 传递参数的时候 用的是方法 而不是赋给属性,

	// 所以说将password改成userpassword下面方法setPassword不变也可以。

	public String getName() {
		return name;
	}

	public Action1() {
		request = ServletActionContext.getRequest();

	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String add() throws UnsupportedEncodingException {
		name = new String(request.getParameter("name").getBytes("ISO8859-1"));
		password = new String(request.getParameter("password").getBytes("ISO8859-1"));
		System.out.println("添加的name=" + name + "添加的password=" + password);
		return ("success");
	}

}


 

 

小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
私信 提问
加载中
请先登录后再评论。
表单验证插件--Jquery表单验证插件

目前支持对以下格式的值进行验证: cnum-(纯数字), char-(纯字母), zwen-(中文), bysc-(字母开头), mail(邮箱), yzbm(邮政编码) 其中的‘’表示长度,比如“zwen1-5”表示中文1-5位的长度。同...

huanganiu
2013/01/23
4.4K
0
MySQL全文搜索引擎--mysqlcft

MySQL在高并发连接、数据库记录数较多的情况下,SELECT ... WHERE ... LIKE '%...%'的全文搜索方式不仅效率差,而且以通配符%开头作查询时,使用不到索引,需要全表扫描,对数据库的压力也很...

张宴
2012/11/29
1.6W
2
端口映射程序--PS320

PS320 V0.12 版本为开源版本 本程序最初想解决自己管理服务器问题,当初因客户不对外开放端口,导致管理工作量大,速度慢且不稳定,每次管理都去现场处理。 本程序提供端口映射功能,可以直接...

冰迪
2013/06/03
2.1K
0
使用IBPP在C++中操作FireBird/Interbase数据库

FireBird是一种小巧的关系型数据库,它有多种版本,包括服务器版(象MySQL),单机版(象Access)以及嵌入式(象SQLite)。而且不管是服务器版还是嵌入式版它都完整支持视图、触发器、存储过程等...

Waiting4you
2009/07/26
3.8K
2
Java开放语音识别

我想用java 写一个语音识别小软件,(能将语音转换为文本文件)。各位有什么详细的中文资料。给提供一下,先谢了。

无名小子
2010/12/21
7.7K
5

没有更多内容

加载失败,请刷新页面

加载更多

代理服务器和反向代理服务器之间有什么区别? - What's the difference between proxy server and reverse proxy server?

问题: 代理服务器和反向代理服务器有什么区别? 解决方案: 参考一: https://stackoom.com/question/wRc/代理服务器和反向代理服务器之间有什么区别 参考二: https://oldbug.net/q/wRc/W...

技术盛宴
今天
16
0
第八讲:配置外界可以访问虚拟机里面的HDFS

本节通过配置实现外界访问虚拟机Centos6.4里面的HDFS。为后续的java读写HDFS做准备 步骤有: 1、修改主机Windos7的网络配置 2、修改虚拟机Centos6.4里面的网络配置 3、修改虚拟机Centos6.4里...

刘日辉
今天
26
0
OSChina 周四乱弹 —— 不劳而获的饭好吃么?好吃!非常好吃!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑推荐:《世界上不存在的歌 (2020重唱版)》- 陈奕迅 《世界上不存在的歌 (2020重唱版)》- 陈奕迅 手机党少年们想听歌,请使劲儿戳(这...

小小编辑
今天
31
3
从 GPU、TPU,到 Web 端、移动端,深度学习框架部署训练开始变简单

本文作者:o****0 早些时候的统计显示,今年3月,深度学习框架集中爆发。5月,有人发布可以直接在 iphone11上训练神经网络的开源项目。日前,百度开源国内首个可直接运行在 Web 端的深度学习...

百度开发者中心
昨天
16
0
如何从Git存储库中删除文件? - How can I delete a file from a Git repository?

问题: I have added a file named "file1.txt" to a Git repository. 我已将名为"file1.txt"的文件添加到Git存储库中。 After that, I committed it, added a couple of directories called......

富含淀粉
今天
31
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部