Я пытаюсь создать собственный тег. В этом теге я передам атрибут Object as и он должен вернуть список массивов. Я пробовал это, и я получаю исключение.передать объект как атрибут тега JSTL
org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.String cannot be cast to com.showtable.helper.ParentNode
Я думаю, что мой параметр отправки в виде строки в класс и там его не в состоянии преобразовать объект данного типа. Как я могу решить его и передать сам объект и приписать его в классе (поскольку сам String является классом, я считаю его возможным, но я не знаю, как это сделать) мой код приведен ниже. внутри страницы
Внутри страницы
<%@taglib prefix="test" uri="/WEB-INF/tlds/ShowTableCustomTag.tld"%>
<%
//the 'theMainObject' is of type ParentNode
request.setAttribute("mainobject", theMainObject);
%>
<test:getorder objectpara="mainobject"></test:getorder>
Внутри ShowTableCustomTag.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd">
<tlib-version>1.0</tlib-version>
<short-name>showtablecustomtag</short-name>
<uri>/WEB-INF/tlds/ShowTableCustomTag</uri>
<tag>
<name>getorder</name>
<tagclass>cc.showtable.customtag.ParentNodeOrder</tagclass>
<info>tag to return order as arraylist</info>
<attribute>
<name>objectpara</name>
<required>true</required>
</attribute>
</tag>
</taglib>
Внутри ParentNodeOrder класса
package cc.showtable.customtag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import com.showtable.helper.ParentNode;
public class ParentNodeOrder extends TagSupport{
private Object objectpara;
@Override
public int doStartTag() throws JspException {
try {
//Get the writer object for output.
JspWriter out = pageContext.getOut();
ParentNode parent=(ParentNode)objectpara;
out.println(parent.getOrder());
} catch (IOException e) {
e.printStackTrace();
}
return SKIP_BODY;
}
public Object getObjectpara() {
return objectpara;
}
public void setObjectpara(Object objectpara) {
this.objectpara = objectpara;
}
}
Спасибо за ответ. Я включил тип, но у меня возникло исключение :( org.apache.jasper.JasperException: java.lang.ClassCastException: java.lang.String не может быть отнесено к com.showtable.helper.ParentNode – arjuncc
Затем Я думаю, вам также нужно установить 'rtexprvalue = true'! –
@arjuncc! Я обновил свой ответ! –