Я могу использовать язык выражений для печати значения формы POST из текущего запроса на мой взгляд:
<p>Foo Name: ${fn:escapeXml(param.fooName)}</p>
Но переменная param.fooName
EL больше не заполняется, когда я собираю данные формы в Java переменная с использованием аннотации @FormParam
в моем контроллере:
@FormParam("fooName") String fooName
Полный поток выглядит следующим образом:
Браузер отправляет форму на http://localhost:7101/myapp/rs/foo/new
:
@POST
@Path("/new")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
public Response saveNew(
@FormParam("fooName") String fooName // <---
) {
Map<String, Object> map = new HashMap<String, Object>();
// Do stuff here
return Response.ok(new Viewable("/foo/new", map)).build();
}
Представление отображается с new.jsp
:
<%@ page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<p>Foo Name: ${fn:escapeXml(param.fooName)}</p>
Если я удаляю строку @FormParam("fooName") String fooName
, тогда ${fn:escapeXml(param.fooName)}
снова содержит данные формы .
Существует ли способ доступа к данным формы в обоих местах (Java контроллер и JSP представление)?