【问题标题】:Create and pass Map to a request scoped attribute创建 Map 并将其传递给请求范围的属性
【发布时间】:2013-04-15 10:43:38
【问题描述】:

在我的 JSP 模型中,我的作用域中有一个 MyBean 类的 bean。

class MyBean {
  ...
  public String getName() { ... }
  public String format(Map<String,String> model) { 
      /* format a template with model */ 
  }
}

我是这样用的:

&lt;b&gt;${requestScope.myBean.name}&lt;/b&gt; - ${requestScope.myBean.format(myMap)}

myMap 将包含一些仅在 JSP 页面中已知的信息,例如网址。 是否有一个标签/库可用于声明和传递地图,例如

<lib:map var="myMap">
 <lib:mapEntry name="base_url" value="${some_url_value_in_scope}"/>
</lib:map>
<b>${requestScope.myBean.name}</b> - ${requestScope.myBean.format(myMap)}

【问题讨论】:

    标签: java jsp spring-mvc jstl jsp-tags


    【解决方案1】:

    如果您正在运行 EL 2.2,它是 Servlet 3.0 的一部分。然后${requestScope.myBean.format(myMap) 将起作用。或者创建一个自定义 EL 函数并像 ${someTag:format(requestScope.myBean, myMap)}

    一样调用它

    可能有更好的方法,但你可以这样做:

    <jsp:useBean id="myMap" class="java.util.HashMap" scope="request"/>
    <c:set target="${myMap}" property="base_url" value="${some_url_value_in_scope}"/>

    【讨论】:

    • 调用方法没问题。 如何在 JSP 中创建地图?
    • 我已经编辑了我的答案,您是否正在寻找我在答案中提到的内容?
    【解决方案2】:

    为什么像 URL 这样的信息只能在 jsp-page 本身中使用? 数据是在jsp-page中生成/创建的吗?

    在 spring 处理的“MyBaan”类中? 如果是,您可以使用 spring-controls 将数据放入类中...

    【讨论】:

    • 我有 urls.jps 以及所有 url 模板、基本 url 等。在该文档中,我创建了需要传递给第二个文档中 MyBean 实例的变量。 urls.jsp 当然也包括在内,并在每个超链接中使用。
    • 可以使用 spring-ioc-functionality @Scope ("request") public class RequestScopeBean { @Autowired private URLs urls; public String format() { // your code with interaction on class var 'urls' } }
    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    相关资源
    最近更新 更多