Passer une valeur d'objet Java dans une balise JSP personnalisée

Je suis en train de passer une variable java à partir d'un personnalisé de balises jsp(Im en utilisant struts2 ici pour obtenir la variable de la classe java). Voici l'erreur que je reçois.

javax.servlet.ServletException: /pages/editBidForm.jsp(51,8) According to TLD or attribute directive in tag file, attribute parentId does not accept any expressions
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
    ....

Voici ma page jsp(partie)

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="custom" %>
...
...
<table>
           <tr>
           <%

         String bidformoid=null;
         bidFormOid=request.getParameter("bidFormOid");
         %>

            <td> <custom:zorancustomtag  parentType = "BIDFORM" parentId = "<%= pageContext.getAttribute("bidFormOid") %>" /></td>   


           </tr>
        </table>

Je ne suis pas en mesure de passer le parentId paramètre correctement. J'ai été en mesure de passer le parentType paramètre correctement, car il s'agit seulement de passage de la chaîne

Ici est la taglib fichier.

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag 
Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
      <tlibversion>1.0</tlibversion>
      <jspversion>1.1</jspversion>
      <shortname>custom</shortname>
  <tag>
      <name>zorancustomtag</name>
      <tagclass>com.zoran.action.CustomizedTag</tagclass>
      <bodycontent>JSP</bodycontent>
      <info>Tag having a body and attributes</info>
      <attribute>
         <name>name</name>
         <required>false</required>
         <rtexpvalue>false</rtexpvalue>
      </attribute>

       <attribute>
         <name>parentType</name>
         <required>true</required>
         <rtexpvalue>true</rtexpvalue>
      </attribute>

       <attribute>
         <name>parentId</name>
         <required>true</required>
         <rtexpvalue>false</rtexpvalue>
      </attribute>



   </tag>

</taglib>

Et la java de la classe de la balise personnalisée.

public class CustomizedTag implements Tag {
private PageContext pageContext;
private Tag parent;
private String name;
private int parentId;
private String parentType;
List list = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/*  public CustomizedTag() {
super();
}
*/
public int doStartTag() throws JspException {
Session session = SessionUtil.getSession();
session.beginTransaction();
try {
JspWriter out = pageContext.getOut();
String parId = getParentId()+"";
// out.println(getParent()+"&nbsp;");
String quer = "from ContentBase cb where cb.parentType=? AND cb.parentId=? ";//+parId;
Query query = session.createQuery(quer);
query.setParameter(0, getParentType());
query.setParameter(1, getParentId());
list = query.list();
ContentBase cb = new ContentBase();
if (null != list && !list.isEmpty()) {
cb = (ContentBase) list.get(0);
}
//pageContext.getOut().print("Sri "+getName());
out.println(cb.getDescription());
} catch (IOException ioe) {
throw new JspException("Error:"+ioe.getMessage());
}
return SKIP_BODY;
}
public int doEndTag() throws JspException {
return SKIP_PAGE;
}
public void release() {
}
public void setPageContext(PageContext pageContext) {
this.pageContext = pageContext;
}
public void setParent(Tag parent) {
this.parent = parent;
}
public Tag getParent() {
return parent;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getParentType() {
return parentType;
}
public void setParentType(String parentType) {
this.parentType = parentType;
}
}

Quelqu'un peut s'il vous plaît laissez-moi savoir comment passer une variable java par l'usage de balises jsp.

Grâce,
Aditya

source d'informationauteur Aditya R