首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > Struts中文问题&&link标签参数问题(第一次项目纪念)
【标  题】:Struts中文问题&&link标签参数问题(第一次项目纪念)
【关键字】:Struts,link
【来  源】:http://www.blogjava.net/action/archive/2005/11/29/21830.html

Struts中文问题&&link标签参数问题(第一次项目纪念)

    这些天一直在自己开发一个项目审计系统,自开发项目真是心酸多多啊,从早上7点起床,到晚上11点睡觉.几乎没怎么离开电脑,处理掉了N多问题我的企业管理模块终于出炉了.回想一下困扰我时间最长的就是Struts的中文处理问题,和用<hmlt:link>标签传递页面上用<bean:write>输出的Bean的属性的问题.用纯Struts实现真是很难.这是我第一次开发项目,所以要把其中的酸甜苦辣都写出来.呵呵先说说中文问题把.我解决的时候可是遍布网络,通过各种方式寻找解决方案,终于工夫不负有心人我看到了一个帖子给我了极大的激发.这样解决不但可是让Action直接接收的Form的数据就是gb2312,而且还可以让数据库也能很好的解决中文问题,真是一石二鸟啊哈哈!

首先在web.xml上配置如下:

 

<filter>

<filter-name>Set Character Encoding</filter-name>

<filter-class>com.huahang.tj.struts.filters.SetCharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>GB2312</param-value>

</init-param>

<init-param>

<param-name>ignore</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>Set Character Encoding</filter-name>

<servlet-name>action</servlet-name>

</filter-mapping>

 

然后写一个JAVA类,是一个过滤器,让然如果自己不爱写直接把下面的源代码copy上也可以.

 

package com.huahang.tj.struts.filters;

import javax.servlet.*;

import java.io.IOException;

 

public class SetCharacterEncodingFilter implements Filter {

 

protected String encoding = null;

protected FilterConfig filterConfig = null;

protected boolean ignore = true;

 

public void destroy() {

this.encoding = null;

this.filterConfig = null;

}

 

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain)

throws IOException, ServletException {

 

if (ignore || (request.getCharacterEncoding() == null)) {

String encoding = selectEncoding(request);

if (encoding != null)

request.setCharacterEncoding(encoding);

}

chain.doFilter(request, response);

}

 

public void init(FilterConfig filterConfig) throws ServletException {

this.filterConfig = filterConfig;

this.encoding = filterConfig.getInitParameter("encoding");

String value = filterConfig.getInitParameter("ignore");

if (value == null)

this.ignore = true;

else if (value.equalsIgnoreCase("true"))

this.ignore = true;

else if (value.equalsIgnoreCase("yes"))

this.ignore = true;

else

this.ignore = false;

}

 

protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}

}

 

配置完了.在加上了这个过滤器类就在action中就可以直接从form中接收gb2312编码的数据了,返回时自然也是gb2312了。但是这个好像需要servlet 2.2以上的容器

我的环境是

windowsXp-MyEclipse4.0.3-Tomcat5.5-JDK1.5-Struts1.2

 

还有一个问题就是

<%@page contentType="text/html;charset=gb2312"%>

<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>

<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>

<html:html>

  <body>

    您的帐户是:<bean:write name="user" property="username"/>

    <br><br><br>

   <h1>欢迎使用项目申报管理系统</h1>

   <br><br>

   <html:link page="/select.do" paramId="username" paramName="user" paramProperty="username">企业信息</html:link>

  </body>

</html:html>

 

    向上面那样的一个简单的JSP页面,用Struts的标签,<bean:write>输出了我在别的Action里存入Session的一个Bean的属性,这个属性用来作会话用的.然后我想把这个属性当作参数加入到一个<html:link>中.方法找了N多都没能很少的实现,因为项目要求是用纯Struts写,所以我没用JSP代码.最后一个朋友帮我找到了这个方法:

<html:link page="/select.do" paramId="username" paramName="user" paramProperty="username">

    虽然看上去不怎么难,但是我以前看过的几本Struts书和上学的时候学的Struts都没涉及到这样传递参数的方法.这样在请求后面用paramId声明一个参数,要传递的参数.然后用paramName找到一个具体的Bean,然后是具体的属性用paramName实现.哈哈问题就解决了.因为是第一次写项目所以我感觉自己处理问题的方法还是不够简单明了.通过日夜奋战我的项目的企业模块的编码工作也都搞定了.初步测试通过.哈哈
用JAVA轻松返回系统当前的标准日期-时间:【上一篇】
Servlet中的JDBC浅显实例:【下一篇】
【相关文章】
  • Struts + Spring + Hibernate 框架资源--整理
  • MVC设计模式的Struts技术实现(2)
  • MVC设计模式的Struts技术实现(3)
  • MVC设计模式的Struts技术实现(4)
  • MVC设计模式的Struts技术实现(5)
  • WW与Struts的合并
  • cnblogs Linking List
  • hibernate and spring links
  • 使用 Easy Struts for Eclipse 开发 Struts[转]
  • Salamander .NET Linker and Mini-Deployment Tool
  • 【随机文章】
  • 加我的QQ群:25146516
  • inode
  • 在ORACLE中利用角色增强应用系统安全性
  • 用squid再次疯狂加速你的web
  • HOWTO do Linux kernel development
  • 3.7 SOCK SAP C++包装类编程
  • 缺省适配模式
  • 从MIPS指令角度看计算机对子程序的支持
  • Linux程式设计-11.Shell Script(bash)--(14)Bash内建参数
  • [翻译]CoolStreaming/DONet: 实时流媒体传输的数据重叠网络 (2)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.