0

gwtアプリケーションでサーブレットからjspにエラーメッセージを出力する

以下のように、jsp を使用して gwt アプリケーションでエラー メッセージを出力しています。

//サーブレット コード

if (validateBranchId == false) {
      UserMessagesAndErrors ume = ThreadLocalObjects.
                         getThreadLocalUserMessagesAndErrors().get();
      ume.addError("Branch Id value is not correct");
      RequestDispatcher dispatcher =
                         getServletContext().getRequestDispatcher("/errors.jsp");
      dispatcher.forward(req, res);         
    }

//Jspコード(errors.jsp)

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>    
<%@ page import="com.veersoft.util.ThreadLocalObjects" %>     

上記のコードのように、私のブランチ ID が objectify データストアに存在しない場合、validateBranchId は false なので、私の ume (usermessagesAndErrors) はメッセージを jsp に出力する必要がありますが、代わりに jsp にメッセージを出力していません。どんな体でもアイデアがあれば教えてください。

<%@ page import="com.veersoft.gwt.shared.error.UserMessagesAndErrors" %>     
<%@ page import="java.util.List" %>     

errors!    
<%    
    UserMessagesAndErrors ume = ThreadLocalObjects.getUserMessagesAndErrorsObj();
    List<String> errors = ume.getErrors();    
    for (String error : errors) {    
        out.println(error + "<BR/>");    
    }     

    List<String> messages = ume.getMessages();    
    for (String message : messages) {    
        out.println(message + "<BR/>");    
    }    
%>
4

1 に答える 1

0

サーブレットで:

ume.addError("Branch Id value is not correct");
req.setAttribute("ume",ume); // add it to the request
RequestDispatcher dispatcher = ...

jsp で:

UserMessagesAndErrors ume = (UserMessagesAndErrors) request.getAttribute("ume");
List<String> errors = ume.getErrors();
//etc

ただし、jsp ではスクリプトレットを完全に避ける必要があります。EL を使用してください。

于 2013-04-18T10:26:58.270 に答える