0

我有一个文本块作为长文本存储在 mysql 表中,然后我使用 struts bean:define for jsp 检索。我想检索此文本块以在 jquery UI 对话框中使用,这意味着必须使用“\n”字符来解析文本。目前文字出来像

emailMSG[1] = "%fn %ln,

Our records indicate that certification in %gn, %cn, %sn expire(d) on %dt.

Please take the refresher course.

Please visit our portal to log into your training.

Please ignore any messages from CITI regarding course expiration. DO NOT log in directly to the CITI site.";

我需要数据采用这种格式:

emailMSG[<%=id%>] = "%fn %ln,\n"+
"\n" +
"Our records indicate that certification in %gn, %cn, %sn expire(d) on %dt.\n"+
"\n" +
"Please take the refresher course at the training site.\n"+
"\n" +
"Please visit our portal to log into the site.\n"+
"\n"+
"Please ignore any messages from CITI regarding course expiration. DO NOT log in directly to the CITI site.";

如何从 mysql 表中获取数据中的“\n”+ 字符?

这是我引用这部分的代码(我删除了不相关的部分):

<logic:iterate id="cel" name="CourseEmailList" scope="request">
    <bean:define id="msg" property="message" name="cel" scope="page" type="java.lang.String"/>
    <bean:define id="id" property="id" name="cel" scope="page" type="java.lang.String"/>
<tr>
        <logic:notEmpty name="cel" property="message" scope="page">
            <td><a href="#" onclick="OpenDialog(<bean:write name='cel' property='id' scope="page"/>);return false;">View/Modify</a>
            <script type="text/javascript">
                courseIDs[<%=id%>] = "<%= id%>";
                emailMSG[<%=id%>] = "<%= msg%>";
            </script>
            </td>
        </logic:notEmpty>
        </tr>
</logic:iterate>
4

1 回答 1

0

我找到了解决方案。可能有一种更简单的方法来做到这一点,但这是我所做的:

1)我写了一个java函数,用%nl替换数据库中数据中的所有/r/n。当我存储查询结果以在 jsp 页面上使用时,我会在结果集中的每一行上调用它。

public static String formatMessage(String comment) {
        if(comment != null){
            return comment.replaceAll("\r\n", "%nl");
        }else{
            return "";
        }
  }

2) 然后在我的 jsp 页面上,我获取了 bean:define 数据并将其保存到一个临时变量中,然后执行了一个 str.replace 函数,将所有 %nl 替换为 \n。

<script type="text/javascript">
      var temp = "<%= msg%>";
      var parsed = temp.replace(/%nl/g,'\n');
      emailMSG[<%=id%>] = parsed.valueOf();
</script>

这使我的文本正确显示在 jquery ui 对话框文本区域中。

于 2013-02-27T16:14:01.393 回答