在struts2中實現了編輯功能。當我點擊提交按鈕後,我在JSP中顯示的bean值在操作類中正確獲取。爲什麼沒有得到一些bean對象的值?
但是我在JSP中沒有提到的其他bean的值是返回null。
如果我在JSP中顯示bean的所有值,那麼我可以在Action中獲取所有值。
這是解決此問題的方法。否則,還有其他方法。
的Action類的代碼
UserForm userForm = new UserForm();
public String edit(){
String result = ActionSupport.ERROR;
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
HttpSession session = request.getSession(false);
if (null != session
&& null != (UserAccount) session.getAttribute(USER)) {
String editUser = (String) request
.getParameter(RequestAttributes.EDIT_USER);
UserAccount userAccount = userForm.getUserAccount();
if (null != editUser) {
//invoked when edit user page is submitted
userUtils.updateUserAccount(userAccount);
} else {
// invoked when edit user page gets loaded
String userAccSID = (String) request
.getParameter(USER_ACC_SID);
String roleSID = (String) request.getParameter(ROLE_SID);
if (null != userAccSID && null != roleSID) {
Long userAccSIDVal = Long.valueOf(userAccSID);
Long roleSIDVal = Long.valueOf(roleSID);
userAccount = userUtils
.loadUserAccount(userAccSIDVal);
userForm.setUserAccount(userAccount);
}
}
}
return result;
}
public UserForm getUserForm() {
return userForm;
}
public void setUserForm(UserForm userForm) {
this.userForm = userForm;
}
而對於JSP頁面的代碼是
<s:form action="edit?editUser=edit">
<table align="center">
<s:hidden name="userForm.userAccount.createdBy"/>
<tr align="center">
<th>Edit User</th>
</tr>
<tr>
<td><s:textfield name="userForm.userAccount.firstName" label="First Name"/></td>
</tr>
<tr>
<td><s:textfield name="userForm.userAccount.lastName" label="Last Name"/></td>
</tr>
<tr>
<td><s:submit value="Save" /><s:reset value="Cancel" /></td>
</tr>
</table>
現在,如果我把createdBy爲隱藏,然後我可以得到的價值在行動中創建。 它的價值已經由行動類設置。 那麼,爲什麼我應該在jsp頁面中設置呢?
任何幫助將不勝感激。謝謝
沒有特定的代碼/錯誤消息/堆棧跟蹤/值,幾乎不可能建議你。 – beny23