jb9下建立的javaBean处理中文的问题。(20分)

Q

qukmei

Unregistered / Unconfirmed
GUEST, unregistred user!
我用jb9的向导建立了一个javaBean
package servlet;
import java.io.*;
public class UserBean implements Serializable {
private String username;
public UserBean() {
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject();
}
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
编译通过,我用一个1.jsp来做表单,2.jsp做为userbean的jsp,这样1.jsp输入东西,提交2.jsp就可以显示,英文显示没有问题,中文就是乱码,不知道怎么处理。
2.jsp
<%@ page contentType="text/html;
charset=gb2312" %>
<html>
<head>
<title>
userbean
</title>
</head>
<jsp:useBean id="mybean" scope="session" class="servlet.UserBean" />
<jsp:setProperty name="mybean" property="*" />
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
<jsp:getProperty name="mybean" property="username"/>
</body>
</html>
 
1.jsp上来数据做一下GBK的编码
到2.jsp就没问题了
sbData=new String(sbData.getBytes("iso-8859-1"),"GBK");
 
sbData=new String(sbData.getBytes("iso-8859-1"),"GBK");
这句和
sbData=new String(sbData.getBytes("ISO8859_1"),"GBK");
有区别吗?
我再问这句我懂,但放在哪里呀?
2.jsp中有<jsp:getProperty name="mybean" property="username"/>是显示的,我想了想了
只有在javaBean中动手术,可总改不对,请问一下如何改?
或有什么更好的方法,我只用这三个文件,别的不用。
 
public void setUsername(String username) {
this.username =new String(username.getBytes("iso-8859-1"),"GBK");
}
 
那个我早就试过了,不行的
 
unreported exception java.io.UnsupportedEncodingException;
must be caught or declared to be thrown at line 20 (20:21)
是这个错误
 
难道要try..catch吗?大兄你能帮我吗? 
 
当然要try来 还有你必须先判断一下 传近来的值不能是null 不然也是会出错的呀
他报的错是不支持的字符集 那你就把"GBK"该为"gb2312"
this.username =new String(username.getBytes("iso-8859-1"),"gb2312");
看看
 
其实我就是用的gb2312,我一向不用gbk,我不知道gb2312与gbk有什么区别?
所以问题还是没有解决
 
他报的错就是 不支持的字符集 gb2312 的字符集包括中文字符的范围要小于GBK 建议使用GBK
this.username =new String(username.getBytes("iso-8859-1"),"GBK");
这样不会有错的 你就按我的写
 
晕,我又不是小孩子,我能那么愚昧吗?当然我试了gb2312不行,马上又试gbk也是不行呀,所以才发的报错呀!,晕
 
要是写成
this.username =new String(username.getBytes());
就不报错
 
唉,我解决了,谢谢大兄,不过我用的是另一种办法,还请大兄能想出来在Bean里的办法呀
我是在2.jsp里加了一句
<%
request.setCharacterEncoding("GBK");
%>
就可以
 
那个报错,好像是不支持ISO8859_1吧,哈
 
对了,我做了一个taglib用jb9出错了
大家看看,怎么处理呀
"firstWebApp.war": E:/bea/jdk141_03/bin/javaw -classpath "E:/bea/user_projects/domains/mydomain/servlet/classes;e:/bea/weblogic81/server/lib/weblogic_sp.jar;e:/bea/weblogic81/server/lib/weblogic.jar;e:/bea/weblogic81/server/lib/webservices.jar;" weblogic.appc -keepgenerated -forceGeneration -compiler E:/bea/jdk141_03/bin/javac E:/bea/user_projects/domains/mydomain/servlet/firstWebApp.war.war -output E:/bea/user_projects/domains/mydomain/servlet/firstWebApp.war
"firstWebApp.war": Error: [jspc]: 1 file(s) failed:
"firstWebApp.war": /helloworld.jsp
"firstWebApp.war": [J2EE:160121]Errors encountered while compiling module 'E:/bea/user_projects/domains/mydomain/servlet/firstWebApp.war.war':
"firstWebApp.war": Translation of /helloworld.jsp failed: (line 2): Could not parse deployment descriptor: java.io.IOException: cannot resolve '/helloworld' into a valid tag library
 
java.io.IOException
读写错误,是没有找 '/helloworld' 在你的 标签库里
 
同样的程序,我在tomcat下调试成功,在jb9+weblogic8.1下就出错,jb9一运行make就出错,我觉得是class的路径有问题,主要可能是tld调用class的问题 吧,请指教
 
以下是简单的写法 你可以参照他的写法
<taglib>
<tag>
<name>display</name>
<tagclass>examples.jsp.tagext.counter.Display</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
 
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>mytag</shortname>
<info>Simple tag library.</info>
<tag>
<name>helloworld</name>
<tagclass>mytag.HelloWorldTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>Simple tag</info>
</tag>
</taglib>
我是这样写的,有区别吗?
谁在jb9+weblogic8.1下配过taglibs呀?
 
高手不见了,
 
顶部