当前位置 : 主页 > 编程语言 > java >

jsp:param与Java类

来源:互联网 收集:自由互联 发布时间:2021-06-25
我有一个包含另一个JSP文件的JSP文件.第一个JSP应该将 Java类(小部件)的实例传递给第二个JSP文件. 这是我有的: 第一个JSP: jsp:include page="/container/SpecialWidget.jsp" jsp:param name="widget" value=
我有一个包含另一个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’

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

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

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

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

${param.widgetId}

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

上一篇:JSP 服务器响应
下一篇:Jsp的使用
网友评论