2010-08-18 3 views
0

Я знаю, что это несколько повторный пост, но я чувствую, что повторное опубликование моего вопроса сделает вещи более ясными.Извлечение значения из строки в таблице Struts2 при использовании Displaytag

Вот код для моего стола в моей странице 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, где TableRow обертки класса всех различных областей (и у меня есть методы получения и установки для всех полей). Теперь, когда я проверить исходный HTML-код, я вижу это для скрытого поля:

<input type="hidden" name="cpc" value="" id="displayResults_cpc"/> 

По какой-то причине, не существует никакого значения можно найти ... Это было прекрасно работать, прежде чем я Displaytag, и я есть геттер и сеттер в моем классе Action (прямо сейчас он возвращает пустую строку).

Edit: Это 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> 

ответ

2

Я предполагаю, что я остроконечный из с помощью кнопок, но если кому-то интересно, вот то, что я в конечном итоге, используя вместо этого:

<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> 
+0

Привет спасибо fieldValue = "% {# attr.row.cpc}" это решило мою проблему. Несмотря на то, что моя проблема была другой, она была решена. Еще раз спасибо..!! –

0

Я думаю, что, вероятно, происходит то, что требования ряда специфических для Struts 2 и дисплея TagLib взаимодействуют слабо, то есть что другой taglib выполняет свою собственную обработку по строкам, а выражение OGNL для «cpc» не оценивается должным образом, потому что строка не помещается в стек значений (если вы не понимаете, что я значит, это не важно).

Поскольку у вас есть значение цены за клик в другом столбце, возможно ли использовать Javascript в onClick (или onLoad) кнопок для извлечения значения из соседнего поля?

+0

Привет Шон, не могли бы вы предоставить простой пример того, как я хотел бы сделать что-то вместе эти линии? Я никогда не занимался Javascript раньше ... – Raymond

+0

Вам наверняка повезло, что вы сразу узнаете все эти вещи. :-) Да, я посмотрю, что я могу придумать через несколько минут. –

+0

Можете ли вы вставить немного сгенерированного HTML-кода, чтобы я мог дать вам Javascript? Я просто не уверен, что будут «настоящие» идентификаторы в вашем примере. Спасибо. –

Смежные вопросы