我正在尝试添加一个简单地说“Hello World”的页面listusers.jsp
。我正在从profile.jsp中显示的参数中读取listusers.jsp的名称。
<!-- profile.jsp -->
<table width="100%" border="0px">
<tr><td>
<table border="0px">
<tr>
<td>
<dsp:a page="profile.jsp">List Users
<dsp:param name="includepage" value="listusers.jsp"/>
</dsp:a>
<dsp:a page="profile.jsp">Shop
<dsp:param name="includepage" value="shop.jsp"/>
</dsp:a>
</td>
</tr>
</table>
</td>
<td>
<dsp:getvalueof param="includepage" id="subpage" >
<dsp:include page="<%= subpage %>" />
</dsp:getvalueof>
</td></tr>
</table>
当我尝试打开profile.jsp
A:\Tomcat\apache-tomcat-7.0.37\atgbases\ATG\work\Catalina\localhost\MyStore\org\apache\jsp\profile_jsp.java:168: error: method setPage in class IncludeTag cannot be applied to given types;
_jspx_th_dsp_005finclude_005f1.setPage( subpage );
^
required: String
found: Object
reason: actual argument Object cannot be converted to String by method invocation conversion
1 error
1 warning
请告诉我使用
添加动态页面的正确方法答案 0 :(得分:2)
您只是为变量提供了getvalueof
错误的属性。
而不是:
<dsp:getvalueof param="includepage" id="subpage" >
<dsp:include page="<%= subpage %>" />
</dsp:getvalueof>
而是尝试:
<dsp:getvalueof param="includepage" var="subpage" >
<dsp:include page="<%= subpage %>" />
</dsp:getvalueof>
请注意,该属性为var
而不是id
。
答案 1 :(得分:0)
我认为为idtype="java.lang.String"
标记指定<dsp:getvalueof />
可能会解决您的问题。它看起来像是变量,subpage
创建为Object
而不是String
。
<dsp:getvalueof param="includepage" id="subpage" idtype="java.lang.String">
<dsp:include page="<%= subpage %>" />
</dsp:getvalueof>