gpt4 book ai didi

java - 使用 Struts2 突出显示表格中的行

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:33 25 4
gpt4 key购买 nike

我正在预处理用户上传的一些数据,如果有任何数据行无效,我想告诉他们。我认为检查每一行是有意义的,如果有错误将该行号添加到错误行的哈希集中,然后在输出时检查当前索引是否在哈希集中,并突出显示该行。

这是相关的jsp:

    <table>
<tr>
<s:iterator value="prettyNames">
<th><s:property /></th>
</s:iterator>
</tr>
<s:iterator value="importList" status="stat">
<tr class="class="${lineErrors.contains(%{#stat.index}) ? 'highlight' : ''}"">
<s:iterator>
<td><s:property /></td>
</s:iterator>
</tr>
</s:iterator>
</table>

高亮设置背景颜色为红色。但是我在 Eclipse 中收到警告说“”测试”不支持运行时 表达式”,页面返回 500 错误,“根据 TLD 或标记文件中的属性指令,属性测试不接受任何表达式”。

突出显示表格中任意行的正确方法是什么?

最佳答案

您看到此错误的原因是因为您正在尝试评估 Struts2 标记属性内的标准 JSP EL 表达式,在本例中为“test”。您需要将 OGNL 符号与 S2 标记一起使用,就像这样(假设 lineErrors 解析为 ValueStack):

<table>
<tr>
<s:iterator value="prettyNames">
<th><s:property /></th>
</s:iterator>
</tr>
<s:iterator value="importList" status="stat">
<s:if test="%{lineErrors.contains(#stat.index)}">
<tr class="highlight">
<s:iterator>
<td><s:property /></td>
</s:iterator>
</tr>
</s:if>
<s:else>
<tr>
<s:iterator>
<td><s:property /></td>
</s:iterator>
</tr>
</s:else>
</s:iterator>
</table>

当然,更短的方法是这样的,您将 S2 属性标记嵌套在类属性中,但这可读性较差:

<table>
<tr>
<s:iterator value="prettyNames">
<th><s:property /></th>
</s:iterator>
</tr>
<s:iterator value="importList" status="stat">
<tr class="<s:property value='%{lineErrors.contains(#stat.index) ? "highlight" : ""}' />">
<s:iterator>
<td><s:property /></td>
</s:iterator>
</tr>
</s:iterator>
</table>

关于java - 使用 Struts2 突出显示表格中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com