我有以下代码
Action
:
private String yourSearchEngine;
private String selectedUserGroupId;
//with both getter and setter.
public void validate(){
if("-1".equals(getYourSearchEngine())){
addFieldError("yourSearchEngine", getText("select search engine"));
addressList.add("Select search engine");
}
if("-1".equals(getSelectedUserGroupId())){
addFieldError("selectedUserGroupId", "select user group");
addressList.add("Select user group");
}
JSP页面:
<s:select label="Search engine:"
headerKey="-1"
headerValue="Select Search Engines"
list="searchEngine"
name="yourSearchEngine"
id="yourSearchEngine"
value="defaultSearchEngine"
tooltip="Select Search Engines" />
<s:select label = "User Group:"
list = "userGroupList"
listKey = "userGroupId"
listValue = "userGroup"
name = "selectedUserGroupId"
id="selectedUserGroupId"
headerKey="-1"
headerValue="Select Group"
tooltip="Select Group" ></s:select>
当我提交表单并且值为
-1
时,它没有显示错误消息。
我可以看到
addFieldError()
代码运行并且 addressList
已填充。
但是,它没有显示错误消息。
默认情况下,Struts2 使用
xhtml
主题。该主题旨在显示绑定到操作的输入元素上的字段错误。如果未显示错误,请确保您使用了 xhtml
主题,或者您可以向每个选择标签或表单标签显式添加 theme
属性。您还可以使用 struts 常量配置默认使用的主题。
<s:select label="Search engine:"
headerKey="-1"
headerValue="Select Search Engines"
list="searchEngine"
name="yourSearchEngine"
id="yourSearchEngine"
value="defaultSearchEngine"
tooltip="Select Search Engines"
theme="xhtml" />
<s:select label = "User Group:"
list = "userGroupList"
listKey = "userGroupId"
listValue = "userGroup"
name = "selectedUserGroupId"
id="selectedUserGroupId"
headerKey="-1"
headerValue="Select Group"
tooltip="Select Group"
theme="xhtml" />
查看可以在 struts 标签中指定
theme
的位置。 指定 Struts 2 应使用的主题。
您可以在每个 Struts 2 标签的基础上指定主题,也可以使用以下方法之一来指定 Struts 2 应使用的主题:
theme
属性theme
属性"theme"
"theme"
"theme"
"theme"
struts.ui.theme
中的struts.properties
属性(默认为xhtml
)要使其在页面上生效,请确保将
INPUT
结果配置为带有 defaultStack
拦截器的操作。