Вы назначаете имя только скрытым полям, а не значение. Вы можете использовать атрибут key
вместо name
. Он автоматически сгенерирует HTML с правильными именем и значением.
<s:iterator value="%{listShow}" var="show">
<tr>
<td><s:property value="showId" /></td>
<td><s:property value="showName" /></td>
<td><s:property value="showDate" /></td>
<td><s:property value="showPrice" /></td>
<td>
<s:form action="goModify">
<s:submit value="Modify" />
<s:hidden key="showId" />
<s:hidden key="showName" />
<s:hidden key="showDate" />
<s:hidden key="showPrice" />
</s:form>
</td>
</tr>
</s:iterator>
Если действие goModify не сохраняет параметры в стеке значений (например, сохраняя их в атрибутах), возможно, вам придется изменить JSP для непосредственного доступа к параметрам запроса.
<s:form action="modifyAction">
<s:textfield label="ID" name="showId" value="%{#parameters.showId}" />
<s:textfield label="Show Name" name="showName" value="%{#parameters.showName} />
<s:textfield label="Date" name="showDate" value="%{#parameters.showDate} />
<s:textfield label="Price" name="showPrice" value="%{#parameters.showPrice} />
<s:submit value="Modificar"></s:submit>
</s:form>
Однако лучшее решение для второго JSP также будет использовать key
вместо name
и value
. Но тогда вы должны убедиться, что значения находятся в стеке значений.