• Struts2对值的推断


    目的是想将jsp中的input输入:
    <input class="inputstyle" type="text" value="<s:property value="#result.maritalStatus"/>" name="updatePersonalInfo.maritalStatus" />
    改成JSP部分select选择:
    <input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />
    <select class="selectstyle" id="selectMerrage">
        <s:if test="#result.maritalStatus==null">
            <option value="--请选择--">--请选择--</option>
            <option value="是">是</option>
            <option value="否">否</option>
        </s:if>
        <s:else>
            <s:if test="#result.maritalStatus=='是'.toString()">
                <option value="是" selected="selected">是</option>
                <option value="否">否</option>        
            </s:if>
            <s:else>
                <s:if test="#result.maritalStatus=='否'.toString()">
                    <option value="是">是</option>
                    <option value="否" selected="selected">否</option>
                </s:if>
                <s:else>
                    <option value="--请选择--">--请选择--</option>
                    <option value="是">是</option>
                    <option value="否">否</option>
                </s:else>
            </s:else>
        </s:else>

    </select>

    和JS部分取值赋值:
    $(function(){  

        var maritalStatus = document.getElementById("selectMerrage").value

        $("#selectMerrageValue").val(maritalStatus);
     });

    可是一直出现故障。

    測试部分例如以下:

    <input type="text" value="<s:property value="#result.maritalStatus"/>" />
    有值;
    <s:property value="#result.maritalStatus"/>
    firebug看html中有值;
    ${result.maritalStatus}
    firebug看html中有值。



    终于发现<s:if test="#result.maritalStatus=='是'">和<s:if test="#result.maritalStatus=='否'">两句
    始终不能正确的被推断。最后发现是由于#result.maritalStatus这个字段是String类型。必须在推断的时候加上‘是'.toString()。


    附上查询到的帮助博客: http://guokejia1986.blog.sohu.com/174626148.html

    博客内容: 

    Struts2 用 s:if test 推断String类型的对象属性值和单字符是否相等的问题

    首先,这里所指的单字符形如:Y。男。

    有两种做法:

    a. <s:if test='news.sfsecret=="是"'>

    b. <s:if test="news.sfsecret=='是'.toString()">

    解释例如以下:

    由于java是强类型语言,单引號表示char类型,而双引號则表示String类型。所以a中能够正常使用。而b中则须要用toString()方法将char类型转为String类型。



    事实上单纯的input改成select也能够用这种方法,当中JSP部分select选择:

    <input style="display:none;" type="text" id="selectMerrageValue" name="updatePersonalInfo.maritalStatus" />

    <select class="selectstyle" id="selectMerrage">
            <option value="是" id="selectYes">是</option>
            <option value="否" id="selectNo">否</option>
    </select>

    和JS部分取值赋值:

        $(function(){
    var maritalStatus= "<s:property value='#result.maritalStatus' escape='false'/>";
    if(maritalStatus=="是")
    $("#selectYes").attr("selected",selected);
    else
    $("#selectNo").attr("selected",selected);
        });

    这样做的话就不用Struts的<s:if  test ="">来推断了,直接在JS里面定义一个变量取值来推断。


  • 相关阅读:
    $Noip2018/Luogu5022$ 旅行
    $Noip2018/Luogu5020$ 货币系统 $dp$
    $Noip2018/Luogu5021$ 赛道修建 二分+树形
    $Noip2018/Luogu5019/Luogu1969$ 铺设道路
    $Poj1220/AcWing124 Number Base Convertion$ 进制转换+高精除
    $Poj1050 To the Max$
    $Poj1723/AcWing123 Soldiers$ 排序
    luogu质数距离
    模板线性筛
    CERC2016 bfs 最大生瓶颈边 lca
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7381209.html
Copyright © 2020-2023  润新知