知道美河 | 上传资料 | VIP申请 | 精品课程 | 资料搜索 | 问题反馈 | 会员手册 | 积分消费 | 积分充值 | 帐号保护
美河学习学习在线赞助VIP

美河学习在线(主站) eimhe.com

 找回密码
 建立账号
查看: 6875|回复: 9

[求助] 想要WSH项目源码的.帮我解决这个问题....Action到页显示数据的乱码问题???

[复制链接]
发表于 2007-5-22 21:03:26 | 显示全部楼层 |阅读模式
经Action到页面显示的就是乱码..乱七八糟的..不是什么"?"形式的...

我的统一编码为GBK,另外同时还加了过滤器的...在后台的action里打印得到的数据是中文的...但转到页面就乱码了..

但是过滤不了.action中的乱码问题,,,那位高手帮解决一下...

如何能进行过滤.action中出现的乱码呢..????

经actionl转发代码如下:
   <a href="getupdateteacher!getUpdateTeacher.action?id=<ww:property value='id'/>&
   teacher_ID=<ww:property value='teacher_ID'/>&
   teacher_Name=<ww:property value='teacher_Name'/>&
   teacher_Sex=<ww:property value='teacher_Sex'/>&
   teacher_Lesson=<ww:property value='teacher_Lesson'/>&
   teacher_Call=<ww:property value='teacher_Call'/>&
   teacher_Address=<ww:property value='teacher_Address'/>&
   teacher_Class=<ww:property value='teacher_Class'/>&
   teacher_Time=<ww:property value='teacher_Time'/>&teacher_No=<ww:property value='teacher_No'/> ">

action中的代码:如
/**
     * 获得要更新教师的数据
     * @return
     */
    public String getUpdateTeacher(){
            Teacher t = new Teacher();
            t.setId(id);
                t.setTeacher_ID(teacher_ID);
                try {
                        t.setTeacher_Name( new String (teacher_Name.getBytes("ISO-8859-1"),"GBK"));
                        t.setTeacher_Address(new String (teacher_Address.getBytes("ISO-8859-1"),"GBK"));
                        t.setTeacher_Class(new String (teacher_Class.getBytes("ISO-8859-1"),"GBK"));
                        t.setTeacher_Lesson(new String (teacher_Lesson.getBytes("ISO-8859-1"),"GBK"));
                        t.setTeacher_Sex(new String (teacher_Sex.getBytes("ISO-8859-1"),"GBK"));
                } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                }
                t.setTeacher_Call(teacher_Call);
                t.setTeacher_No(teacher_No);
                t.setTeacher_Time(teacher_Time);
               
                teacherService.getUpdateTeacher(id.toString());
               
            return SUCCESS;
    }下:


页面代码:
<table width="100%"  border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC" class="px12">
  <tr bgcolor="#1A7FE5" class="bk">
    <td width="100%" height="28"><div align="center"><span class="px14b style2"><span class="px12white style10">教师信息修改</span></span></div></td>
  </tr>
</table>
<form id="updateTeacherForm" METHOD=POST action="updateteacher!updateTeacher.action">
<table width="60%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC" class="px12">
  <tr>
    <td width="42%" bgcolor="#FFFFFF"><div align="right" class="style14">ID:</div></td>
    <td width="58%" bgcolor="#FFFFFF">
        <input name="id" type="text" class="inputStyle2 " value="<ww:property value='id'/>" readonly>
        </td>
  </tr>
  <tr>
    <td width="42%" bgcolor="#FFFFFF"><div align="right" class="style14">职工号:</div></td>
    <td width="58%" bgcolor="#FFFFFF"><input name="teacher_ID" type="text" class="inputStyle2 " value="<ww:property value='teacher_ID' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">姓名:</div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_Name" type="text" class="inputStyle2 " value="<ww:property value='teacher_Name' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">性别:</div></td>
    <td bgcolor="#FFFFFF"><span class="style14">
      <input name="teacher_Sex" type="radio" value="男">
      男
      <input name="teacher_Sex" type="radio" value="女" checked>
      女</span></td>
  </tr>
  
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">所教课程:</div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_Lesson" type="text" class="inputStyle2 " value="<ww:property value='teacher_Lesson' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">联系方式:</div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_Call" type="text" class="inputStyle2 " value="<ww:property value='teacher_Call' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right"><span class="style14">联系地址:</span></div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_Address" type="text" class="inputStyle2 " value="<ww:property value='teacher_Address' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style15">任课班级<span class="style16">:</span></div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_Class" type="text" value="<ww:property value='teacher_Class' />"></td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">上岗时间:</div></td>
    <td bgcolor="#FFFFFF"><p class="style15">
      <input name="teacher_Time" type="text" value="<ww:property value='teacher_Time' />">
    </p>
    </td>
  </tr>
  <tr>
    <td bgcolor="#FFFFFF"><div align="right" class="style14">身份证号码:</div></td>
    <td bgcolor="#FFFFFF"><input name="teacher_No" type="text" class="inputStyle2 " value="<ww:property value='teacher_No' />"></td>
  </tr>
  <tr>
    <td colspan="2" bgcolor="#FFFFFF"><div align="center" class="style12"><span style="text-align:center"> <br>
      <input name="Submit2" type="submit" class="btn" value="修 改" >
      <input type="reset" name="reset" value="重置">
    </span></div></td>
  </tr>
</table>


[ 本帖最后由 j2eelwd 于 2007-5-22 22:28 编辑 ]
发表于 2007-5-22 21:23:47 | 显示全部楼层
你是怎么传的request.setAttribute这种方式还是什么啊??最好有代码说明
发表于 2007-5-22 21:25:16 | 显示全部楼层
 楼主| 发表于 2007-5-22 21:59:08 | 显示全部楼层
发表于 2007-5-22 22:27:24 | 显示全部楼层
webwork 有个properties配置文件。里面有个local的配置。。默认是iso8809-1 的
发表于 2007-5-22 22:28:44 | 显示全部楼层
webwork 有个properties配置文件。里面有个local的配置。。默认是iso8809-1 的
 楼主| 发表于 2007-5-22 22:31:07 | 显示全部楼层
我设了,,不好用的...
### This can be used to set your default locale and encoding scheme
#webwork.locale=en_US
webwork.locale=zh_CN
webwork.i18n.encoding=GBK
发表于 2007-5-22 22:35:02 | 显示全部楼层
发表于 2007-5-22 22:36:13 | 显示全部楼层
a)在webwork.properties文件中,添加:
webwork.i18n.encoding = UTF-8
它主要是用来设置WebWork UI标签库的编码,
要保持你的页面和编码与你在encoding设置的一致,否则重复编码出现乱码.
如果不设置它将通过System.getProperty("file.encoding"来获取默认字符编码。

PS:2.1.6版本中存在BUG,不能够使用定义的encoding.

b)写一个Filter,将编码设置为UTF-8。
例如SetCharacterEncodingFilter。它解决Action数据传递时的编码,但是不能解决属性在Action或是Model赋值的编码.
c)velocity.properties文件中,添加:
input.encoding=UTF-8
output.encoding=UTF-8
default.contentType=text/html; charset=UTF-8
它是用来设置.vm页面的编码方式.

d)使用freemarker作为view层,可以再web.xml中指定字符属性;

<servlet>
        <servlet-name>freemarker</servlet-name>
        <servlet-class>com.opensymphony.webwork.views.freemarker.FreemarkerServlet</servlet-class>
        <!-- FreemarkerServlet settings: -->
        <init-param>
            <param-name>TemplatePath</param-name>
            <param-value>/templates/</param-value>
        </init-param>
        <init-param>
            <param-name>NoCache</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>ContentType</param-name>
            <param-value>text/html</param-value>
        </init-param>
       <!--        指定编码         -->
        <init-param>
            <param-name>default_encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>

        <init-param>
            <param-name>number_format</param-name>
            <param-value>0.##########</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
这是在网上找的。
WebWork我也是刚开始学,所以就只能找资料拉。没编写经验。哈哈。。
 楼主| 发表于 2007-5-22 22:39:35 | 显示全部楼层
velocity.properties这个没用到..

呵呵..还是很感谢...帮忙的..我是帮一个朋友..完成一个毕业论文的设计..

Webwork+spring+hibernate完成的...
您需要登录后才可以回帖 登录 | 建立账号

本版积分规则

 
QQ在线咨询

QQ|小黑屋|手机版|Archiver|美河学习在线 ( 浙网备33020302000026号 )

GMT+8, 2025-5-23 12:33

Powered by Discuz!

© 2001-2025 eimhe.com.

快速回复 返回顶部 返回列表