jsp:param与Java类

约翰·亨德里克(John Hendrik):

我有一个包含另一个JSP文件的JSP文件。第一个JSP应该将Java类的实例(小部件)传递给第二个JSP文件。

这就是我所拥有的:

第一个JSP:

<jsp:include page="/container/SpecialWidget.jsp">
     <jsp:param name="widget" value="${widget}"/> // widget is a .Java POJO
</jsp:include>

第二个JSP:

${param.widget.id}

问题在于此代码给出了一个错误(它说它不知道ID)。如果省略“ .id”部分,则页面将打印Java类的Java代码,这表示该类已正确传输。如果更改了第一页的$ {widget}规则,例如$ {widget.id},并且尝试打印$ {param.widget},则一切正常。

我的问题:为什么我不能传递Java类并直接调用其属性?我究竟做错了什么?

编辑:错误消息:原因:javax.el.PropertyNotFoundException:在类型java.lang.String上找不到属性'id'

拉斐尔·博尔贾(Rafael Borja):

当您传递变量时,${widget}它将在请求时转换为字符串(widget.toString())。然后,此值作为字符串而不是原始java对象传递给第二个JSP。

访问对象值的一种方法是使用属性的值设置参数的值:

<jsp:param name="widgetId" value="${widget.id}"/>

然后在第二个JSP上使用下面的代码:

${param.widgetId}

您还可以将小部件设置为请求属性,并在第二页上将其用作${widget.id}或$ {request.widget.id}。我建议您使用第二种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章