I concluded that your EL are not evaluated. I think you have to use
<%@ page isELIgnored="false"%>
in your jsp.
I hope this will solve your problem. You can also refer to
http://forum.java.sun.com/thread.jspa?threadID=573209&messageID=2848229
Let me know the result.
Best regards
Keshav Shetty
Robert Simmons Jr. wrote:
Greetings;
I have a tag that I created to allow integration with my back end. I
am using the Jakarta astandard taglibs extensively in the application
but I am a bit of a taglib newbie and I have a problem. Namely when I
use EL expressions in my tag attributes, they get passed verbatim to
the tag and never evaluated.
For example, if I use:
<cs:subscriptionInfo targetID="${subID}" nameVar="subName"
descriptionVar="subDesc"/>
Then targetID gets passed the literal string ${subID} which causes the
page to
explode since targetID needs to be a long. The TLD for this tag is
indicated below:
<tag>
<description>
Fetches information on a particular subscription.
</description>
<name>subscriptionInfo</name>
<tag-class>com.bmw.candy.candiedServices.tags.TagSubscriptionInfo</tag-class>
<body-content>empty</body-content>
<attribute>
<description>
ID of the subscription for which to obtain info.
</description>
<name>targetID</name>
<type>java.lang.Long</type>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
The variable in which to store the subscription name.
</description>
<name>nameVar</name>
<type>java.lang.String</type>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
The variable in which to store the subscription description.
</description>
<name>descriptionVar</name>
<type>java.lang.String</type>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
The variable in which to store the subscription items.
</description>
<name>itemsVar</name>
<type>java.lang.String</type>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<description>
The variable in which to store the subscription last
sequence number.
</description>
<name>sequenceNumVar</name>
<type>java.lang.String</type>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
You can see that I set rtexprvalue to true in all cases yet there is
no resolution hapening. The implementation of this tag is shown here:
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import com.bmw.candy.candiedServices.SubscriptionAccess;
import com.bmw.candy.candiedServices.data.Subscription;
/**
* Get the information on a subscription and store it in some JSP
variables.
*/
public class TagSubscriptionInfo extends SimpleTagSupport {
/** The ID of the subscription to obtain info on. */
private long targetID = -1;
/** The variable in which to store the subscription name. */
private String nameVar = null;
/** The variable in which to store the subscription description. */
private String descriptionVar = null;
/** The variable in which to store the subscription items. */
private String itemsVar = null;
/** The variable in which to store the subscription last sequence
number. */
private String sequenceNumVar = null;
/** [EMAIL PROTECTED] */
public void doTag() throws JspException, IOException {
if (this.targetID < 0)
throw new IllegalArgumentException("targetID"); //$NON-NLS-1$
SubscriptionAccess access = new SubscriptionAccess();
Subscription subscription =
access.getSubscriptionInfo(this.targetID);
if (this.nameVar != null) {
getJspContext().setAttribute(this.nameVar,
subscription.getName());
}
if (this.descriptionVar != null) {
getJspContext().setAttribute(this.descriptionVar,
subscription.getDescription());
}
if (this.itemsVar != null) {
getJspContext().setAttribute(this.itemsVar,
subscription.getItems());
}
if (this.sequenceNumVar != null) {
getJspContext().setAttribute(this.sequenceNumVar,
new
Integer(subscription.getSequenceNum()));
}
}
/**
* @param descriptionVar The variable in which to store the
subscription
description.
*/
public void setDescriptionVar(String descriptionVar) {
this.descriptionVar = descriptionVar;
}
/**
* @param itemVar The variable in which to store the subscription
items.
*/
public void setItemsVar(String itemsVar) {
this.itemsVar = itemsVar;
}
/**
* @param nameVar The variable in which to store the subscription
name.
*/
public void setNameVar(String nameVar) {
this.nameVar = nameVar;
}
/**
* @param targetID The ID of the subscription to obtain info on.
*/
public void setTargetID(long targetID) {
this.targetID = targetID;
}
/**
* @param sequenceNumVar The variable in which to store the
subscription
last sequence number.
*/
public void setSequenceNumVar(String sequenceNumVar) {
this.sequenceNumVar = sequenceNumVar;
}
}
So what Might I be doing wrong? I have googled for this for hours on
end with no enlightenment. I am currently using the jsp:attribute tag
to work around this but would really like to fix this once and for all.
Thanks in advance.
-- Robert
------------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]