Java 为什么在使用struts时有时应该强制转换request.getAttribute
这是一个错误:Java 为什么在使用struts时有时应该强制转换request.getAttribute,java,jsp,struts,Java,Jsp,Struts,这是一个错误: <bean:define id="myid" value="<%=request.getAttribute("key")%>" 对于,直接将对象设置为值 i、 e 它总是返回对象 所以它显示了错误 你应该投。像 <%=(String)request.getAttribute("key")%> 或 <%=request.getAttribute("key").toString()%>" /> “/> 根据文件: 指
<bean:define id="myid" value="<%=request.getAttribute("key")%>"
对于
,直接将对象设置为值
i、 e
它总是返回对象
所以它显示了错误
你应该投。像
<%=(String)request.getAttribute("key")%>
或
<%=request.getAttribute("key").toString()%>" />
“/>
根据文件:
- 指定
name
属性(加上可选属性和范围属性)-创建的属性和脚本变量将属于检索到的JavaBean属性的类型,除非它是Java基元类型,在这种情况下,它将被包装在适当的包装类中(即int由Java.lang.Integer包装)
- 指定
值
属性-创建的属性和脚本变量的类型为java.lang.String
,设置为该属性的值
- 指定嵌套正文内容-创建的属性和脚本变量的类型为
java.lang.String
,设置为嵌套正文内容的值
返回对象
,而myId
将是字符串
。这就是您必须执行强制转换的原因
与此同时,JSP片段
this is <%= request.getAttribute("key") %>
这是
将完全有效,因为请求。getAttribute(…)
将在这是部分之后计算和打印。这里需要强制转换,因为在这种情况下调用对象#toString()
并打印结果。请求.setAttribute(“键”,“值作为对象”)
存储为对象的值
(请注意大O),因此当您检索回request.getAttribute(“key”)
时,它将作为类型对象返回,因此您需要对其进行分类。您能详细解释一下吗?我听不懂您的意思,3ks。关于:jsp:param标记的值呢?是否应该进行分类?找到文档并检查:)
<%=(String)request.getAttribute("key")%>
<%=request.getAttribute("key").toString()%>" />
this is <%= request.getAttribute("key") %>