这是今天发现的另一个小异常,
弄了个表单,提交后页面跳转成功,但是控制台报了错误信息:
ERROR ParametersInterceptor Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'submit' on 'class net.runze.struts2demo.demo1.LoginAction: Error setting expression 'submit' with value ['submit', ]
分析了下:
jsp页面是酱紫的:
<s:form action="login">
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit key="submit"/>
</s:form>
处理Action的页面是酱紫的:
public class LoginAction extends ActionSupport {
// 定义封装请求参数的username和password成员变量
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
(只是关键片段,代码不完整)
所以我猜--->因为上面表单里有submit有key,而下面action类里没有这个属性所以才报错?
实践出真理:
果然,我把<s:submit key="submit"/>换成了<s:submit>submit</s:submit>
虽然界面变的很奇葩-->
,但是不抱错了,
可是新问题出来了,怎么才能既能随便设置提交按钮显示的名称又能不报错呢?
和html表单一样,将表单按钮的value属性设为自己想要显示的名称,这样就可以达到我需要的目标了.
(我为什么一开始不用value呢?都怪我买的一本讲struts的书给误导了,它没有给我广告费,我就不在这提它的名字了)