在Spring控制器中添加字符串数组以便转发到另一个服务

时间:2017-08-09 21:20:00

标签: java spring jsp spring-mvc web

我想在这里切断JSP中间人。我有一个POST Spring端点,它返回一个表示视图的字符串。这个视图是一个JSP("中间人"),它只是将$(document).ready()上隐藏的HTML输入元素POST到另一个系统的URL。为了删除这个JSP,我需要在已经提到的调用控制器中填充请求参数(例如,request.setAttribute("var1", "val1"))。

第一个问题:我应该通过返回"forward:" + URL来执行此操作吗?重定向似乎不是一个选项,因为外部系统的端点期望POST(而不是 get ,这将是此流程的第一个重定向后获取模式)。

第二个问题:JSP中有一个循环多次填充相同的隐藏输入元素:

<c:forEach var="elem" items="${requestScope.elements}">
    <input type="hidden" name="thing" value="<c:out value="${elem}"/>">         
</c:forEach>

我如何将其迁移到调用控制器。也许,这样的事情:

@RequestMapping(value = "/path_val", method = RequestMethod.POST)
public String handleRequest(HttpServletRequest request) {
    // below is the code in question
    @SuppressWarnings("unchecked")
    List<String> elements = (List<String>) request.getAttribute("elements");
    for (ListIterator<String> elemIter = elements.listIterator(); elemIter.hasNext();) {
        request.setAttribute("item[" + elemIter.nextIndex() + "]", elemIter.next());
    }
    return "forward:" + outsideURL;
}

0 个答案:

没有答案