0

このifステートメントを表示しようとしています

    <s:hidden id="userNameTest" value="nameTest"></s:hidden>
        <s:if test="userNameTest.value.equals('false')">
                That name is already in use.
        </s:if>

これが私のアクションページで発生した場合

    public String createUser()
{
    user.set_permission("user");
    if(user.get_userName().matches("^([a-zA-Z0-9]{5,15})$")&&(user.get_password().matches("^((?=.+\\d).{8,20})$")))
    {
        if(manager.checkUserName(user.get_userName()) == false)
        {
            manager.createUser(user);
            valueButton = "userPage";
        }
        else
        {
            valueButton = "createUser";
        }
    }
    else
    {
        nameTest = false;
        valueButton = "createUser";
    }
    return valueButton;
}

上記のように、jsp onclick で非表示フィールドを false にしようとしました。アクションで false にしようとしました。私は他のサイトでそれを調べましたが、私が求めているものを見つけることができません.

4

5 に答える 5

1

JSTL コアタグを使用してください。慣例として、プレフィックスは次のようになります<c:>

nameTest解決策は、アクション クラスにrequest 属性を設定することです。

ブール比較:

<c:if test="nameTest eq false">
..
</c:if>

文字列比較:

<c:if test="nameTest eq 'false'">
..
</c:if>
于 2012-09-28T16:03:30.210 に答える
1

変数nameTestがブール値の場合<s:if test="!nameTest"> User Name is Taken </s:if>は機能します。

于 2012-09-28T18:51:21.247 に答える
0
  1. まず、値が JSP で適切に取得されているかどうかを確認するために、 のように使用s:debugまたは印刷できます<s:property value = "nameTest"/>

  2. if 条件を使用したい場合は、スルートを直接確認できます

<s:if test="nameTest =='false'"> User Name is Taken </s:if>

于 2012-09-28T15:48:29.660 に答える
0

以下を試してみてください。

1)
    <s:if test="'${nameTest}'=='false'">   
        That name is already in use.
    </s:if>

2)その変数がブール値の場合、これを試してください

    <s:if test="%{${nameTest} == false}">   
            That name is already in use.
    </s:if>

nameTestアクションクラスにゲッターとセッターが必要です

于 2012-10-01T10:31:24.487 に答える
0

struts2 を使用しているため、結果に基づいてアラートを表示するためのより一般化されたアプローチは次のとおりです (ここでは Bootstrap フレームワークも使用しています。これは、見栄えが良く、応答性が高いためです)。

フォームに入力して送信すると、アクション クラスがその役割を果たし、「成功」または「エラー」を返します。次に、これを struts.xml にマップします。ここでこれを行う必要があります -

<action name="the-form-action" class="com.example.action.MyActionClass">
    <result name="success">/result-page.jsp?result=true</result>
    <result name="error">/result-page.jsp?result=false</result>
</action>

result-page.jsp (最初のフォーム ページでもかまいません) に、このコードを追加します。

        //Tags and everything
        <body>
        <%
            String result=request.getParameter("result");
            if (result==null)
                result="";
            if (result.equalsIgnoreCase("true"))
            {
        %>
            <div class="alert alert-success alert-dismissible" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <strong>Success!</strong> Who's the boss?! You're the boss!!
            </div>
        <%
            }
            if (result.equalsIgnoreCase("false"))
            {
        %>
            <div class="alert alert-danger alert-dismissible" role="alert">
                <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <strong>Oops!</strong> There seems to be an error! You may try the following :<br>
                <ul>
                 <li>Fill the compulsory fields</li>
                 <li>Pray to god</li>
                </ul>
            </div>
        <%
            }
        %>

        //Rest of the body
        </body>

これで、アラートは成功または失敗した場合にのみ表示されます。

于 2015-03-08T12:54:44.233 に答える