0

search.jspにフォームがあります

<s:form name="employeeSearchForm" action="searchAction" method="post">
    <s:textfield name="id" label="Employee ID"/>
    <s:textfield name="name" label="Employee Name"/>
    <s:submit/>
</s:form>

struts.xml内

<package name="example" namespace="/" extends="default">

    <action name="searchAction" class="example.SearchAction">
        <result>/example/search.jsp</result>
    </action>

</package>

次に、SearchActionクラス

public class SearchAction extends ActionSupport {

    private String id;
    private String name;

    @Override
    public String execute() throws Exception {

        if ("".equals(id.trim())) {    //#1

        ...

    }

    ...
}

#1のラインコードを参照してください。search.jspのフォームから送信ボタンをクリックした場合、idフィールドはnullになりませんが、http://127.0.0.1:8080/myapps/searchAction.action直接開くと、idフィールドはnullになります。

この場合、SearchAction.exeucte()でフィールドチェックを使用できます。たとえば、if(id!= null)ですが、これが最も洗練された方法かどうかは疑問です。

誰でもより良い方法を提案できますか?

4

2 に答える 2

1

private String id=""; \クイックフィックス。

ただし、アプリは、ユーザーがアクションを直接ヒットすることを許可するべきではありません。ユーザーは、事前に認証および/または承認される必要があります。

于 2012-11-11T11:09:26.937 に答える
0

Web環境では、通常、ユーザーが入力を提供したかどうか(空かnullか)を判断するのは困難です。あなたの場合、Struts2検証http://struts.apache.org/2.x/docs/validation.htmlを使用して値を検証できます。

于 2012-11-11T12:20:38.083 に答える