使用displayTag时从struts2表中的行中检索值
-
29-09-2019 - |
题
我知道这有点重新播放,但是我觉得重新提出我的问题会使事情变得更加清楚。
这是我的JSP页面中我表的代码:
<display:table name="table" pagesize="25" requestURI="">
<display:column title="Action" >
<s:form theme="simple">
<s:hidden key="cpc" />
<s:submit action="remove" value="Remove"
onclick="return confirm('Are you sure you want to delete this item?');"/>
<s:submit action="displayEdit" value="Edit"/>
</s:form>
</display:column>
<display:column property="cpc" title="CPC" sortable="true" headerClass="sortable"/>
<display:column property="companyName" title="Company Name" sortable="true" headerClass="sortable"/>
<display:column property="eventType" title="Event Type" sortable="true" headerClass="sortable"/>
<display:column property="industryType" title="Industry Type" sortable="true" headerClass="sortable"/>
<display:column property="previousEvents" sortable="true" headerClass="sortable"/>
<display:column property="creditNotifications" sortable="true" headerClass="sortable"/>
<display:column property="interimNotifyEnterprise" sortable="true" headerClass="sortable"/>
</display:table>
该表的来源是一个Arraylist,其中TableOw是所有各个字段中的包装类别(我都有所有字段的机器人和固定器)。现在,当我检查我的HTML源代码时,我会在隐藏字段中看到这一点:
<input type="hidden" name="cpc" value="" id="displayResults_cpc"/>
由于某种原因,找不到价值...在我使用displayTag之前它工作正常,并且我的操作类中确实有一个getter和setter(现在它返回一个空字符串)。
编辑:这是前两行的HTML代码:
<tr class="odd">
<td>
<form id="displayResults" name="displayResults" onsubmit="return true;" action="/CompanyNameTableManager/displayResults.action;jsessionid=566617D98154AB762002B06D9D1087CD" method="post">
<input type="hidden" name="cpc" value="" id="displayResults_cpc"/>
<input type="submit" id="displayResults_remove" name="action:remove" value="Remove" onclick="return confirm('Are you sure you want to delete this item?');"/>
<input type="submit" id="displayResults_displayEdit" name="action:displayEdit" value="Edit"/>
</form>
</td>
<td>10.1.1</td>
<td>Comapny A</td>
<td>abc</td>
<td>123</td>
<td>true</td>
<td>true</td>
<td>true</td></tr>
<tr class="even">
<td>
<form id="displayResults" name="displayResults" onsubmit="return true;" action="/CompanyNameTableManager/displayResults.action;jsessionid=566617D98154AB762002B06D9D1087CD" method="post">
<input type="hidden" name="cpc" value="" id="displayResults_cpc"/>
<input type="submit" id="displayResults_remove" name="action:remove" value="Remove" onclick="return confirm('Are you sure you want to delete this item?');"/>
<input type="submit" id="displayResults_displayEdit" name="action:displayEdit" value="Edit"/>
</form>
</td>
<td>10.1.2</td>
<td>Comapny B</td>
<td>abc</td>
<td>123</td>
<td>true</td>
<td>false</td>
<td>false</td></tr>
解决方案
我想我从使用按钮中弄清楚了,但是如果有人好奇,这是我最终使用的方法:
<s:form theme="simple" method="post">
<display:table name="table" pagesize="25" requestURI="" uid="row">
<display:column title="Select">
<s:checkbox name="checked[%{#attr.row_rowNum - 1}]" fieldValue="%{#attr.row.cpc}" theme="simple"/>
</display:column>
<display:column property="cpc" title="CPC" sortable="true" headerClass="sortable"/>
<display:column property="companyName" title="Company Name" sortable="true" headerClass="sortable"/>
<display:column property="eventType" title="Event Type" sortable="true" headerClass="sortable"/>
<display:column property="industryType" title="Industry Type" sortable="true" headerClass="sortable"/>
<display:column property="previousEvents" sortable="true" headerClass="sortable"/>
<display:column property="creditNotifications" sortable="true" headerClass="sortable"/>
<display:column property="interimNotifyEnterprise" sortable="true" headerClass="sortable"/>
</display:table>
<s:submit action="remove" value="Remove"
onclick="return confirm('Are you sure you want to delete this item / these items?');"/>
<s:submit action="displayEdit" value="Edit"/>
<s:submit value="Add New Row" action="displayAdd"/>
</s:form>
其他提示
我认为可能发生的事情是,特定于Struts 2和Display Taglib的行要求差异很差,即另一个Taglib正在做自己的行逐行处理,而不是“ CPC”的OGNL表达进行适当的评估,因为该行没有被正确推到值堆栈上(如果您不明白我的意思,那不是至关重要的)。
由于您在另一列中具有CPC值,您是否有可能在按钮的OnClick(或Onload)中使用JavaScript从相邻字段中检索值?
不隶属于 StackOverflow