不显示Struts 2中选择下拉列表的错误消息

时间:2015-08-19 14:45:18

标签: jsp struts2 struts-validation

我有以下代码

动作:

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已填充。

但是没有显示错误消息。

1 个答案:

答案 0 :(得分:0)

默认情况下,Struts2使用xhtml主题。此主题旨在显示绑定到操作的输入元素的字段错误。如果未显示错误,请确保您已使用xhtml主题,或者您可以为每个选择标记或表单标记添加明确的theme属性。您还可以使用struts constant配置默认使用的主题。

<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的位置。 Specifying The Theme Struts 2 Should Use

  

您可以基于每个Struts 2标记指定主题,也可以使用以下方法之一指定Struts 2应使用的主题:

     
      
  • 特定标记
  • 上的theme属性   
  • 标记周围表单标记的theme属性
  •   
  • 名为"theme"
  • 的页面范围属性   
  • 名为"theme"
  • 的请求范围属性   
  • 名为"theme"
  • 的会话范围属性   
  • 名为"theme"
  • 的应用程序范围属性   
  • struts.ui.theme中的struts.properties媒体资源(默认为xhtml
  •   

要在页面上生效,请确保将INPUT结果配置为使用defaultStack拦截器的操作。