有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaJSP:我能呈现出比当前编写器输出更高的stringwriter吗?

我已经习惯了rails和erbs中非常方便的yield功能。当我在body标记中运行许多子jsp模板时,我希望能够将css/js脚本标记注入头部。我知道这在Rails使用yield的情况下是可能的,但是我看不到一种注入字符串的方法比已经输出的字符串更高。。。这是我的例子

<head>
<!--- i want to inject script tags into here -->
</head>
<body>
<!-- running multiple child templates here -->
<!-- when the template needs a script tag, find a way of injecting it into the head -->
</body>

我可以从页面的下一步渲染到head标记中吗?这在jsp中是否可以使用字符串编写器或其他方式


共 (1) 个答案

  1. # 1 楼答案

    有几种方法可以实现文本杂耍。由于ruby on rails的ERB也有一点模型-视图-控制器分离,让我们在这里保持同样的做法:

    servlet(控制器构建一个或多个数据模型,并将它们放入请求属性中。然后它将转发到一个JSP(视图

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException {
    
        List<Content> contents = new ArrayList<>();
        ...
        request.setAttribute("contents", contents);
        request.getRequestDispatcher("/contentsview.jsp")
            .forward(request, response);
    }
    

    正如我想对发出HTML的数据进行循环,并在StringWriter中收集并行列表一样,这应该已经解决了问题

    现在在JSP中做(太多)工作:您也可以在方法中使用JspWriter,因此计算顺序同样是免费的

    <%!
         private void printSomething() {
             %><p>...</p><%
         }
    %>