我有一个 Struts 2textfield
标签,我只需要让用户输入值并发送到操作。
<s:textfield name="user.firstAnswer" size="110" cssClass="FormObjectCompulsary" autocomplete="off" />
即使此页面加载用户对象包含第一个答案的值,我也不想在文本字段中显示它,而是希望文本字段为空白。
但是在没有指定 value 属性的情况下,用户对象中的值仍然显示在此字段中。
我有一个 Struts 2textfield
标签,我只需要让用户输入值并发送到操作。
<s:textfield name="user.firstAnswer" size="110" cssClass="FormObjectCompulsary" autocomplete="off" />
即使此页面加载用户对象包含第一个答案的值,我也不想在文本字段中显示它,而是希望文本字段为空白。
但是在没有指定 value 属性的情况下,用户对象中的值仍然显示在此字段中。
如果要添加新对象user
,则应new
在将其显示在 JSP 中之前使用运算符创建此对象。它将包含null
未显示的引用。如果value
未指定属性,则name
用于显示值。
在execute()
. 所以再次它不会在文本框中显示值。
例如。user = null;
我正在向您展示一段代码,可能会对您有所帮助。见execute()
。
package online.solution;
import com.opensymphony.xwork2.Action;
public class MyAction implements Action {
UserBean user = new UserBean();
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
@SuppressWarnings("finally")
@Override
public String execute() throws Exception {
String result = "";
try {
user.setGuest("Bye bye");
System.out.println(user.getUsername() + " " + user.getPassword());
if (user.getUsername().equals(user.getPassword())) {
result = SUCCESS;
}
else {
result = ERROR;
}
user = null; //Make it null when all task completed.
}
catch (Exception exception) {
System.out.println("Exception -> " + exception);
}
finally {
return result;
}
}
@Override
protected void finalize() throws Throwable {
super.finalize();
}
}
通过查看,name="user.firstAnswer"
我认为您正在将 ModelDriven<> 实施到您的操作类中。可能发生的情况是,当您在操作类中返回成功并进入 jsp 页面时,如果在操作中您的用户模型上有一些值。模型驱动将在您的 JSP 页面上为您设置这些字段。
我在学习 struts2 时使用了这种方法来更新表单功能。在返回之前确保用户对象不包含任何内容......