创建Map并将其传递给请求范围的属性

时间:2013-04-15 10:43:38

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

在我的JSP模型中,我在范围内有一个类MyBean的bean。

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

我这样使用它:

<b>${requestScope.myBean.name}</b> - ${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)}

2 个答案:

答案 0 :(得分: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}"/>

答案 1 :(得分:0)

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

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