0

jspページでエラーメッセージを受け取ることができません。実際、データベースでユーザー名とパスワードが正しいかどうかを確認しようとしています。daoからdataexceptionがスローされ、コントローラーでキャッチして以下のコードを確認してください。

SimpleFormController

public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,Object command,BindException errors) throws Exception {

        log.info("onSubmit handleRequest method"+request.getParameter("username"));
        boolean isError=false;
        String username="",password="",errMessage="";
        username=request.getParameter("username");
        password=request.getParameter("password");

        UserBean ubean=null;
        try{
             ubean=userservice.chkUsername(username,password);
        }catch(DataException ex){

            errMessage=ex.getMessage();
            isError=true;
            //throw ex;
        }
        if(isError==true){
            System.out.println("errMessage handleRequest method"+errMessage);
            errors.reject(errMessage);
            return showForm(request, response, errors);
        }
        log.info("After shownform method called");
        HttpSession session=request.getSession(true);
        session.setAttribute("User",ubean);
        return  new ModelAndView("UserPage");
        }



public ModelAndView showForm(HttpServletRequest request, HttpServletResponse response,BindException errors) throws Exception {
                 //Displaying Count size
    log.info("Show form Error Count"+errors.getErrorCount()+getFormView());
    return new ModelAndView(getFormView());
}

Iamはjspページで2つの方法で表示しようとしています。

Jspページ:-

1)
                <spring:hasBindErrors name="UserBean">
                     <h3>You have errors in your input!</h3>  
    <font color="red">  
                    <c:forEach items="${errors.allErrors}" var="error">  
     <spring:message code="${error.code}" text="${error.defaultMessage}"/>  
    </c:forEach>  
    </font>  
                   </spring:hasBindErrors>
2) <form:form action="userpage.htm" method="post"  onsubmit="javascript:fun()">
                    <tr>
                     <form:errors path="*"/> 
                      --------
                       --------
  </form:form>

私はjspで上記の2つの方法を支払おうとしていますが、最終的には何も得られませんでした。上記のcode.plzに問題がありますか?

4

2 に答える 2

0

BindingResult.hasError()を使用してみましたか?そして、エラーを表示するフィールドを指定します。

また、使用しているエラーコードがプロパティファイルに含まれていることを確認してください。

ModelAttributeを使用してモデルをビューにバインドすると、jspでのエラーの処理がはるかに簡単になります。必要に応じて、ここにコードを配置できます。

乾杯。

于 2012-05-09T13:25:59.190 に答える
0

検証を形成するために使用したアプローチは次のとおりです。

コントローラに「validator」プロパティを追加します。

<bean class="YourController">
    ...
    <!-- Map a validator -->
    <property name="validator">
        <bean class="CustomerValidator" />
    </property>
    ...
 </bean>

org.springframework.validation.Validatorを実装するクラスを作成し、次の2つのメソッドを実装します。supportsとvalidate:

public class CustomerValidator implements Validator{


   @Override
   public boolean supports(Class clazz) {

   }

   @Override
   public void validate(Object target, Errors errors) {

   }
}

コントローラクラスの本体から検証ロジックを削除します。

次の例を確認してください。役立つと思います。SpringMVCフォーム処理の例

于 2012-05-09T13:20:13.380 に答える