2

Expression Language-Filter を介してビューを返すようにコントローラーを取得しようとしていますが、ビューをフィルタリングするために EL を使用するジャージーを取得する方法がわかりません。

EL タグで表示:

<html>
    <title>%{msg}</title>
</html>

コントローラ:

@GET
@Produces("text/html")
public Response viewEventsAsHtml(){
    String view=null;
    try {
        view=getViewAsString("events");
    }catch(IOException e){
        LOG.error("unable to load view from file",e);
        return null;
    }
    Response.ResponseBuilder builder=Response.ok(view, MediaType.TEXT_HTML);
    return builder.build();
}

ビューの ${msg} 部分を任意の値に置き換えるためにコントローラーを取得するにはどうすればよいでしょうか?

4

1 に答える 1

4

Jersey を使用している場合、デフォルトで jspを処理する Resource から Viewable を返す機能が提供されます。

ジャージー リソースの例

@Path("/patient")
public class PatientResource {
    @GET @Path("/{patientId}") @Produces(MediaType.TEXT_HTML)
    public Viewable view(@PathParam("patientId") int patientId) {
        return new Viewable("/patient.jsp", Integer.toString(patientId));
    }
}

例の患者.jsp

<span>${it}</span>

注: Jersey は、渡されたオブジェクトを、jsp の「it」として Viewable にマップします。

Jersey を jsp に転送したら、アプリケーション サーバーまたはサーブレット コンテナーにEL実装を追加するだけです。

于 2010-05-19T20:08:54.010 に答える