在“JBoss Seam (POJO without EJB) 后台 + ExtJS 前台完整例子 ”中,在FireFox下运行该项目,会看到中文乱码,但在IE下能正常显示中文。这个问题一致无法解决。此问题的详细内容,请参见这个帖子 。
最后想到了不用JSF,直接在Servlet中产生页面内容,避免了中文乱码问题。
package org.jboss.seam.example.divo;
。。。
public class SampleServlet extends BaseServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
if (action.equals("showHome"))
runShowHome(request, response);
}
/**
* 显示首页
*/
private void runShowHome(HttpServletRequest request, HttpServletResponse response) throws IOException {
String path = request.getContextPath();
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>JBoss Suites: Seam Framework</title>");
out.println("<!--{{{ css -->");
out.println("<link rel=\"stylesheet\" href=\""+path+"/public/css/ext-all.css\" type=\"text/css\" />");
out.println("<link rel=\"stylesheet\" href=\""+path+"/public/css/divo.css\" type=\"text/css\" />");
out.println("<link rel=\"stylesheet\" href=\""+path+"/app/css/screen.css\" type=\"text/css\" />");
out.println("<link rel=\"stylesheet\" href=\""+path+"/app/status-bar.css\" type=\"text/css\" />");
out.println("<!-- }}} -->");
out.println("</head>");
out.println("<body id=\"pgHome\">");
out.println("<div id=\"divo-loading-msg\">");
out.println(" <div>Loading...</div>");
out.println("</div>");
out.println("<!--{{{ seam remoting -->");
out.println("<script type=\"text/javascript\" src=\""+path+"/seam/resource/remoting/resource/remote.js\"></script><script type=\"text/javascript\" src=\""+path+"/seam/resource/remoting/interface.js?sampleFacade\"></script>");
out.println("<!-- }}} -->");
out.println("<!--{{{ js -->");
out.println("<script type=\"text/javascript\" src=\""+path+"/public/js/ext-base.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/public/js/ext-all.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/public/js/pagebus.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/public/js/seam.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/public/js/divo.js\" charset=\"GBK\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/app/common.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/app/status-bar.js\"></script>");
out.println("<script type=\"text/javascript\" src=\""+path+"/app/home2.js\"></script>");
out.println("<!-- }}} -->");
out.println("<div id=\"status-bar\">");
out.println(" <img id=\"status-bar-close\" src=\""+path+"/public/images/tab-close.gif\" />");
out.println(" <span id=\"status-msg\"></span>");
out.println("</div>");
out.println("<div id=\"document\">");
out.println(" <div id=\"header\">");
out.println(" <div id=\"title\"><img src=\""+path+"/app/img/hdr.title.gif\" alt=\"JBoss Suites: seam framework demo\" /></div>");
out.println(" </div>");
out.println(" <div id=\"container\">");
out.println(" <div id=\"sidebar\">");
out.println(" <fieldset>");
out.println(" <div>登录名<input id=\"login-username\" type=\"text\" style=\"width: 175px;\" />");
out.println(" </div>");
out.println(" <div>密码<input id=\"login-password\" type=\"password\" style=\"width: 175px;\" />");
out.println(" </div><br />");
out.println(" <center><div class=\"buttonBox\"><span id=\"login-login\" style=\"cursor:pointer;\">登录</span></div></center><br />");
out.println(" <div class=\"notes\"><span id=\"login-register\" style=\"TEXT-DECORATION: underline;cursor:pointer;color:blue\">注册新用户</span></div>");
out.println(" </fieldset>");
out.println(" </div>");
out.println(" </div>");
out.println(" <div id=\"footer\">");
out.println(" JBoss Seam 2.0(POJO without EJB)、Hibernate 3 和 Ext 2.0");
out.println(" </div>");
out.println("</div>");
out.println("</body>");
out.println("</html>");
}