我用struts做了一个留言本。其中,<bean:write name="msg" property="msgContent" filter="false"/>
我这样做的主要目的是实现换行,通过一个bean将数据库中的\r都换成<br>,这样显示在html叶面中的内容就能换行了,但是当数据库中的内容包含要现实在页面上的html代码时同时也被解析了,例如,数据库中存储“我的代码<html>abc</html>”,我想正常显示,结果显示出来“我的代码abc”。如果将filter改成true以后,原来通过bean转化而来得<br>也显示出来了,也就是说没有被浏览器解析。这个问题怎么解决阿,我又想实现换行,又想实现html代码显示。

解决方案 »

  1.   

    package b;
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class register extends register
    {
       public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
       {
          response.setContentType("text/html;charset=gb2312");
          PrintWriter out=response.getWriter();
          out.print("<html><body>");
          out.print(getcode(request));
          out.print("</body></html>");
       }
       public String getcode(HttpServletRequest request)
       {
        return (request.getParameter("code"));
        }
    }
    ////////////////////////////
    <html>
    <body>
    <form action=b.register>
    <input type=text name=code>
    <input type=submit >
    </form>
    </body>
    </html>
      

  2.   

    基本思路是先在字符串中查找"<"和">",找到以后先把他们两个的位置记录下来,然后再把他们中间的字符串截取出来存放到一个变量里,如存到str中,再判断str是否和"br"相同,如果相同,则不继续向下搜索,如果不同,则根据先前记录的"<"和">"的位置分别把他们替换成"&lt;"和"&gt;"
      

  3.   

    to lip009:这样是不是太麻烦了?而且,struts里面也有html的过滤功能,我想利用一下也就是怎么在filter="true"的情况下,实现将数据库中的换行符\r转换成html得换行符<br>呢?to xiongbing528:
    啥意思?没看明白