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

问题描述 投票:0回答:1

我有以下代码

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

但是,它没有显示错误消息。

jsp struts2 struts-validation
1个回答
0
投票

默认情况下,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
拦截器的操作。

© www.soinside.com 2019 - 2024. All rights reserved.