首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Struts2 if语句中使用枚举

如何在Struts2 if语句中使用枚举
EN

Stack Overflow用户
提问于 2012-05-09 17:41:13
回答 3查看 4.9K关注 0票数 0

我有两个jsp文件,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myform.jsp
<%@ page contentType='text/html; charset=UTF-8' errorPage='' %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<s:form id="myform" name="myform" namespace="/" theme='simple' action='createPage' method='post'>
    <table  width='100%'>
        <tr>
            <td>
                <table width='100%'> 
                    <s:select id='parameterDataType' name='parameterDataType' theme="xhtml" required="true" key='param.datatype' list='#application.myList' emptyOption="true" listKey='listKey' listValue='listValue'/>
                </table>
                <table width='100%'>
                    <s:if test="parameterDataType != null">
                        <tr id='defParameterDefaultValue'>
                            <td class="tdLabel" >
                                <s:label cssClass="label" key="param.value"/></td>
                            <td ><%@ include file='/pages/datatypes.jsp' %></td>
                        </tr> 
                    </s:if>
                </table>
            </td>
        </tr>
    </table>
</s:form>
<script language='JavaScript' type='text/JavaScript'>
    <s:url id="reloadPage" namespace="/" action="reloadPage" />

        function reloadPage()
        {
            var form = document.forms[0];
            form.action = '<s:property value="reloadPage"/>';
            form.action += '?parameterDefaultValue=';
            form.submit();
        }    

        $("#parameterDataType").change(function()
        {
            reloadPage();
        });
</script>

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
datatype.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>

<s:if test="parameterDataType == 'CODE' ">
    <s:textfield id='parameterDefaultValue' name='parameterDefaultValue' theme="simple" size='27'/>
</s:if>

<s:if test="parameterDataType == 'DATE' ">
    <sj:datepicker id='parameterDefaultValue' name='parameterDefaultValue' parentTheme="simple" displayFormat="%{session.sessionAttr.pref.dateDisplayformat}" appendText="%{session.sessionAttr.pref.dateAppendText}" changeMonth="%{session.sessionAttr.pref.changeMonth}" changeYear="%{session.sessionAttr.pref.changeYear}"/>
</s:if>
<s:if test="parameterDataType == 'BUSINESS_UNIT' ">
    <s:select id='parameterDefaultValue' name='parameterDefaultValue' theme="simple" list='#session.businessUnitSelectList' listKey='id' listValue='name' emptyOption='true' />
</s:if>
<s:if test="parameterDataType == 'TERM' ">
    <s:select id='parameterDefaultValue' name='parameterDefaultValue' theme="simple" list='#session.termList' listKey='id' listValue='description' emptyOption='true' />
</s:if>

和一个action类方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public String reloadPage()
{
    return SUCCESS;
}

我的目标是根据在myform.jsp中选择的值在datatype.jsp中显示a字段。例如,当用户从myform.jsp select中选择代码时,页面将重新加载以包含datatype.jsp。如果我使用属性标记,即

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <s:property value="parameterDataType" /> 

为了在datatype.jsp中输出parameterDataType的值,我得到了值代码,但它从未进入if语句。请问我有什么地方做错了吗?如果有更好的方法来实现这一点,我将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-16 06:58:48

后来我用我在这个网站上得到的类似技术解决了这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<s:if test="parameterDataType == @com.myenum.Values@CODE">
    DO SOMETHING
</s:if>

感谢您的回复

票数 2
EN

Stack Overflow用户

发布于 2012-05-09 19:09:18

尝试使用带标签('#')的<s:if test="#parameterDataType == 'CODE' ">

在OGNL中使用hashtag来引用变量。在一些Struts2标签(如property标签)中,没有必要使用hashtag,因为它隐含地表示引用了一个变量,即property标签的' value‘属性将始终引用一个变量,因此没有必要使用hashtag来指定该值是一个变量。

票数 0
EN

Stack Overflow用户

发布于 2012-05-11 01:40:06

OGNL不是很神奇,如果parameterDataType是一个字符串,那么就像这样使用一个字符串方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<s:if test="parameterDataType.equalsIgnoreCase('CODE')">
    DO SOMETHING
</s:if>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10521265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文