我试过了
<display:table name="jobTrackerCol" pagesize="20" sort="list" id="data" requestURI="" class="tablelist">
<display:column title="Request Id" sortable="true" ><%-- property="request_id" > --%>
<a href=# onClick="popupSmallWindow('${data.query}');">${data.request_id}</a>
</display:column>
</display:table>
javascript
function popupSmallWindow(query){
//window.location="http://www.continue.com";
myString = query.replace(/[\r\n]/g, "<br />");
alert(myString);
}
$ {data.query}中的值是长sql查询。
我想在点击链接时在警告或新窗口中显示该查询。请指导我这个
答案 0 :(得分:1)
首先,您需要JavaScript-escape查询。实际上,如果您查询是
select a.id from a where a.name = 'doe'
生成的HTML代码为:
onClick="popupSmallWindow('select a.id from a where a.name = 'doe'');"
这显然会导致问题,因为由于未转义的单引号,JS代码无效。
你可以使用apache commons-lang StringEscapeUtils.escapeECMAScript()来做到这一点。
现在,警告框不显示HTML。因此,如果要将其显示在警告框中,则不得将\r\n
转换为<br/>
。保持原样,警报框将显示查询。
如果您需要HTML支持,可以使用jQuery UI的dialog box来显示您的SQL查询。如果您这样做,则需要将\r\n
替换为<br/>
。但您可以在Java中执行此操作,并将查询放在隐藏的div中,jquery UI对话框将将其用作其对话框的内容。