2017-08-24 28 views
2

我在页面上有几个类似的结构。每个结构由一个标题和几个复选框组成。在java代码中,我为每组数据创建一个映射并将它们传递给服务。如何将地图传递给jsp子结构?

在主jsp页面上,我获得服务并可以读取这些映射键和值。但是这样我会多次重复相同的代码。所以,我必须创建一个看起来像一个带有参数的函数,并且会在主页面中插入一些html代码。

我可以用简单的字符串参数调用包含的jsp文件,如here

 <jsp:include page="groop_checkbox_with_header.jspf"> 
      <jsp:param name="mapName" value="investQuestionsExperience"/> 
     </jsp:include> 
     .... 
     "${param.mapName}" - for use in the included jsp file 

但我无法设置参数到地图。我可以将参数设置为地图名称,并使用包含的jsp中的地图名称从service/request/session中获取地图。但是如何获得被调用的jsp文件中的服务/请求/会话?看来,我不得不发送一些非平凡内容的参数。

但是怎么样?

我可以使用的JSP tag代替include。但问题仍然几乎相同。

请注意,我使用纯JSP而没有JSTL <c: >标签,我不能使用最后一个标签。

+0

创建自定义标签。 –

+0

使用标签,我再次只能传递简单的字符串参数。我需要通过一张地图。或者地图的名字,但是我必须以某种方式传递服务/请求/会话。我怎样才能在那里? – Gangnus

+0

您无法使用*参数*传递Map,但是您可以在Java代码中创建Map并将其设置为在JSP中使用的请求* Attribute *。 http://learnjava4enterprise.blogspot.co.uk/2013/01/difference-between-attribute-and.html –

回答

1

那么,进入您的包含的JSP中,request对象与调用JSP的是相同的。您可以随时通过pageContext.getRequest()访问它。

同样的会议(可以通过PageContext.getSession()或超级变量session访问它),但我建议你使用这个问题的请求。