Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在使用struts时有时应该强制转换request.getAttribute_Java_Jsp_Struts - Fatal编程技术网

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") %>