Struts+Hibernate+MySQL 中文数据查找问题~~~ 假设用户 “张三” 登录,会显示 “张三” 你好

然后会有一个选项----我申请的项目..点击后到达ProjectList.jsp(我申请的所有项目列表)在ProjectList.jsp中有如下代码:<%Stringna... 然后 会有一个选项----我申请的项目..点击后到达 ProjectList.jsp(我申请的所有项目列表)
在ProjectList.jsp中 有如下代码:
<% String name=(String)session.getAttribute("name"); %>
<p>您好:<%=name%>,欢迎使用本系统</p>
<center>大学生自主创新项目申请表</center>
<div align="center">
<table width="100%" border="1" >
<tr align="center"><td width=4%>编号</td>
<td width=70%>申请项目名称</td>
<td width=8%>申请人</td>
<td width=5%>院系</td>
<td width=8%>指导老师</td>
<td width=5%>查看</td>
</tr>
<% ListSelfProjectsStu selflist=new ListSelfProjectsStu();
selflist.list(request,out); %>
其中ListSelfProjectsStu.java类呢,是用来接收到name值 然后到 申请项目的数据库表 project中对比 获得 表中name字段和登录的name一致的所有记录 并循环显示 关键代码为:
String name= (String)request.getParameter("name");
selfDao=this.getSelfProjectDAO();
List list=selfDao.getSelfProjectStu(name);

getSelfProjectStu(name)的函数代码为:
public List<?> getSelfProjectStu(String name) {
try{ Session s=HibernateUtil.currentSession();
HibernateUtil.beginTransaction(); List<?> results=s.createQuery("from Selfproject selfproject where selfproject.name='"+name+"'").list();
HibernateUtil.commitTransaction();
HibernateUtil.closeSession();
if(results!=null&&results.size()>0){
return results;
}
name的值 是中文的。

这样一直是不成功! 就是查不到List...
我的ProjectList.jsp的页面编码为
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> 数据库编码也是UTF-8

我试图在ListSelfProjectsStu.java 中
写 String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
或者在 getSelfProjectStu(String name)中 对name做类似的处理
因为我觉得 这样 就都是UTF-8的形式 接收的name和数据库中的name就可以相等,从而查处来List.
但是 都是 出现了 NullPointer的错误..而至指明就是 因为 类似 String name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8"); 的代码

不知道我表达的清楚了吗? 关键的问题就是 字符编码吧 感觉始终是查数据库结果是 空的 或者可能是其他方面的问题呢?

麻烦给看看吧 谢谢了~~!
是 Struts1 的
name在Jsp页面 显示的 是 中文 是正常的.
展开
 我来答
pkbisi_159
2011-12-12 · TA获得超过746个赞
知道小有建树答主
回答量:464
采纳率:0%
帮助的人:453万
展开全部
真乱啊

首先 String name= (String)request.getParameter("name"); 得到了吗
是乱码吗? 打印看看

其次List<?> results=s.createQuery("from Selfproject selfproject where selfproject.name='"+name+"'").list();
看看results大小是小于0吗? 是的话 看看HQL和数据库有错没

最后 String name=(String)session.getAttribute("name");
看看你有没有准确把name放入session
你用的是struts2吗? 如果是,那么你如何获取session的 并存储name的??
pdy235
2011-12-14 · TA获得超过102个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:103万
展开全部
这个与你的开发环境无关

在mysql安装目录下,有一个mysql.ini文件,修改里面的default_character_encoding,默认是Latin1,修改成你需要的gb2312也行,utf-8也行,问题自己就解决了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gl56187
2011-12-12 · 超过19用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:34.8万
展开全部
页面向查询传值的时候应该传“张三”的编号 进行查询,当返回页面的时候应该是接受根据ID号查询出来的结果 rs.getString("") 引号中是定义名字的字段名称。。
还有,我认为当楼主进行操作数据库查询的时候 在页面 out.println(),输出一下 看看有没有返回自己想要查询的结果。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户37385
2011-12-13
知道答主
回答量:12
采纳率:0%
帮助的人:2万
展开全部
href跳转:

在JSP页面的头文件,这里设为:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
纠纠Jono
2011-12-12 · 贡献了超过116个回答
知道答主
回答量:116
采纳率:0%
帮助的人:32.9万
展开全部
后台Debug下,看list里面有没有值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhzifei
2011-12-12
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
你i用Hibernate,和Struts需要那么麻烦吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式