【问题标题】:Access parameters passed through Viewable in JSPJSP中通过Viewable传递的访问参数
【发布时间】:2016-06-16 06:49:17
【问题描述】:

我在我的 REST 环境中使用 Viewable 来显示 JSP。但是当我通过 Viewable 传递参数时,我无法在 JSP 中访问该参数。

我的 java 文件中有以下代码 -

    Map<String, Object> map = new HashMap<String, Object>();
    map.put("posts", posts);
    map.put("name", "satpute");
    return new Viewable("/home",map);

我在JSP 中使用了不同的选项来访问这个map 参数,但这会返回null。我使用了以下方法 -

<% String name = (String)request.getAttribute("name"); out.print(name); %>

返回 NULL。

我尝试使用它的其他方式是 -

<% String name = (String) pageContext.getAttribute("name"); out.print(name); %>

返回 NULL。

对不起,如果这是一个非常基本的问题,但我在 JSP 中使用了 request 和 servlet。但我无法弄清楚如何将 JSP 与 Viewable 一起使用。

请帮忙。

【问题讨论】:

  • 您需要先获取map,然后必须进行迭代。由于您正在发送地图并且您的name 在地图内。
  • @Vinoth Krishnan 你能告诉我如何准确地访问它,是 getAttribute("map.name") 还是别的什么
  • HereBalusC 的解释。
  • 是的,我也试过了,但这有助于访问 JSTL 中的参数,而不是 java scriptlet。而且我现在没有使用 JSTL 或 JSP-EL。它只是 JSP 和 java 代码。
  • 他也解释了scriptlet,检查他的答案的最后一部分。

标签: rest jsp servlets jax-rs


【解决方案1】:

您必须接收map 参数而不是name

<% Map<String, Object> map= Map<String, Object>request.getAttribute("map"); 
for (Map.Entry<String, Object> entry : map.entrySet()) {
    String key = entry.getKey();
    Object value = entry.getValue();
}%>

我不确定您的 posts 对象(什么样的对象)。从value 获取对象,然后对其进行强制转换并再次迭代以获取值。

但我建议以后使用JSTL

【讨论】:

  • 我使用Map&lt;String, Object&gt; map= (Map&lt;String, Object&gt;) request.getAttribute("map"); name 使用Name : &lt;% String name = (String) map.get("name"); out.print(name); %&gt; 访问地图。这会抛出java.lang.NullPointerException。我是否以错误的方式访问名称?
  • 是的,您不能访问这样的名称。在我的回答中,key 将返回值 namevalue 将返回 name 的特定值。
  • posts 是一个 protocol buffer 对象。它具有类似于 JSON 的结构,但在对象中。我在这个对象中有一些层次结构,我怀疑我能否在 JSTL 中很好地使用它,因为它有自己的功能。现在,我只是在地图中访问普通的String,但我无法访问它。
  • 我认为问题出在第一行本身'Map map= (Map) request.getAttribute("map");'。当我打印它时,它返回null。抱歉 :-(。我真的认为我应该再次检查 JSTL。
  • 我希望你设置值的位置有问题map
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
相关资源
最近更新 更多