文本后跟<字符没有在jsp中显示

时间:2013-11-20 11:47:24

标签: java regex jsp jaxb

当我尝试输入<字符后面的文本时,文本不会显示如下所示。使用textarea字段输入的注释(文本)如“Test Comments with<Character”。将评论添加到页面后,评论在jsp页面上显示为:Test Comments with<Character错过的文字未在页面上显示。我需要更改正则表达式还是在jsp页面中有任何错误?

这里我使用list数组来保存使用JSON和JAXB对象的所有注释。在jsp页面中,当我尝试显示注释时,那些没有正确显示。 Commments显示为“Test Comments with”。

<td colspan="2"><html:textarea name="caseDetailForm" styleId="addCommentsTextArea"
    property="caseCommentText" style="width:99%" rows="7" styleClass="validate-length-750" />

使用正则表达式,如: CommentInput = [\ w \ \ - @!\。\ $ \ + \(\)\#\ | \ [\] \\ / \ ^%&安培; _ \ =〜“”,\&LT;&GT;`\} \ {\:;?\ \ X80 \ X83 \ XA2 \ XA3 \ XA4 \ xA5版权所有\ xA9 \ XAE \ r \ n]的

这里的列表是一个用CaseComment命名的jaxb bean。我有像

这样的java代码
CaseComment[] list = form.getCaseDataJaxb().getCommentList();
JSONObject obj = new JSONObject();
JSONArray comments = new JSONArray();
JSONObject obj = new JSONObject();
            JSONArray comments = new JSONArray();
            commObj.put(list[i].getText());
            comments.put(commObj);
            log.info("----->"+list[i].getText()+"<-----");
    }
}
obj.put("comData", comments);
response.setContentType("text/json");
response.getWriter().write(obj.toString());

在java中调试后,我在Test Comments with<Character中收到整个文本“list”。但没有在jsp中显示。

在jsp中显示我正在使用以下标签:

<logic:iterate id="comments" name="InfoForm" property="caseDataJaxb.commentList" indexId="index">
 <tr>
    <td><c:out value="${comments.text}"/></td>
 </tr>
</logic:iterate>

1 个答案:

答案 0 :(得分:0)

是肯定的。我找到了我的问题的答案,并按照cheffe说我以同样的方式做了。

这是逻辑:

CaseComment[] list = form.getCaseDataJaxb().getCommentList();
JSONObject obj = new JSONObject();
JSONArray comments = new JSONArray();
JSONObject obj = new JSONObject();
    JSONArray comments = new JSONArray();
    String str = list[i].getText());
    str = str.replaceAll("<","&amp;");  
    commObj.put(str);
    comments.put(commObj);
    }
}
obj.put("comData", comments);
response.setContentType("text/json");
response.getWriter().write(obj.toString());

我改变了这样的代码并找到了解决方案。此外,CodeReview中的其他代码也增强了代码。