Существует два решения:
- Отправьте значение вместе с формой (для этой цели может использоваться скрытое поле).Затем установите переменную сеанса в классе действий.
- Сделайте синхронный запрос Ajax, чтобы установить значение сеанса по нажатию кнопок отправки.
Как Dave упомянутыйкогда jsp загружен, значения уже установлены, вы не можете изменить их со стороны клиента.
РЕДАКТИРОВАТЬ
Хорошо, как вы и просили, вот основная идеяПервый способ.Идея состоит в том, чтобы установить идентификатор кнопки отправки с соответствующим cityName
, а затем по нажатию кнопки вызвать функцию javascript, чтобы установить значение скрытого поля с идентификатором нажатой кнопки (т. Е. cityName
)
<s:form>
<s:hidden id="value_to_submit" name="value_to_submit"/>
<s:iterator value="packageCities" status="portStatus"><s:form>
....
<s:if test="%{status == 0}">
<tr>
<td>
<s:submit id="%{cityName}" onclick="set_hidden_value(this.id)" method="open" align="center" value="" cssStyle="background: transparent url(image/open.png) no-repeat center top; border: 0px; width: 150px; height: 30px;" >
</s:submit>
</td>
</tr>
</s:if>
</s:iterator>
</s:form>
Javascript
function set_hidden_value(myvalue){
document.getElementById("value_to_submit").value=myvalue;
}
Теперь вы можете захватить значение переменной value_to_submit
в вашем классе действий и установить там переменную сеанса.