Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

about jstl in tomcat!

Posted on 2004-10-18
7
Medium Priority
?
691 Views
Last Modified: 2013-11-24
this is my some cod in my project:
<jsp:useBean id="idCommunity" class="com.beltino.communitymedical.community.Community" scope="page" />

<c:set var="id" value="${param.id}"/>
<c:set var="action" value="${param.action}"/>
<c:set var="retList"/>
<c:if test="${empty id}">
   <c:set var="action" value="new"/>
</c:if>
<c:if test="${!empty id}">
   <c:set var="action" value="edit"/>
   <c:set var="idCommunity" value="${idCommunity.getCommunityInformation(id)}"/>  //&#26377;&#38382;&#39064;
   <c:set var="retList" value="${idCommunity.getCommunityChildByPId(id)}"/>
</c:if>
........
now <c:set var="idCommunity" value="${idCommunity.getCommunityInformation(id)}"/> is error,and the error message is:
org.apache.jasper.JasperException: /webapp/community/editCommunity.jsp(24,3) The function getCommunityInformation must be used with a prefix when a default namespace is not specified

but when i use this page in resin3.0.8 ,it can work well ,but when in tomcat5.0.28,it can not work!

thanks!
0
Comment
Question by:hgbdelphi
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 

Author Comment

by:hgbdelphi
ID: 12344103
jstl can not call javabean 's method with auguments in tomcat like this
 ${idCommunity.getCommunityInformation(id)}"/>????

but it can in resin,how can i do it????


thanks!
0
 
LVL 21

Expert Comment

by:MogalManic
ID: 12345716
I don't think you can call methods with parameters in JSTL.  Tomcat is confusing the method call with the JSP 2.0 feature of functions.  You need to call using the following syntax:
${prefix:methodName(param1, param2, ...)}
and also include the TLD

<function>
    <name>methodName</name>
    <function-class>className</function-class>
    <function-signature>
        returnType methodName(param1Type, param2Type, ...)
    </function-signature>
</function>


See this tutorial:
http://www.javaworld.com/javaworld/jw-05-2003/jw-0523-calltag-p2.html
0
 

Author Comment

by:hgbdelphi
ID: 12353303
thanks to MogalManic!

  but i can do it in resin,so i help this can work in tomcat,can help me again,if i do this like you say,i will change my code much more,can help me  again.

Best Regard!
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 21

Expert Comment

by:MogalManic
ID: 12357180
Tomcat is closer to the standard so my guess is that you are using a feature that is specific to resin.  If you use the JSTL functions they should work in Resin.
0
 

Author Comment

by:hgbdelphi
ID: 12364860
hi  MogalManic ,
thanks for your help,
 
<c:set var="idCommunity" value="${idCommunity.getCommunityInformation(id)}"/>
to  
<c:set var="idCommunity" value="<%=idCommunity.getCommunityInformation(id)%>"/>

it can work ,but i will change all my code.

Best Regard!
0
 
LVL 21

Accepted Solution

by:
MogalManic earned 400 total points
ID: 12365131
Just define the following TLD and you should be able to use it in BOTH resin and Tomcat
Call it Community.tld:

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd"
    version="2.0">

    <tlib-version>1.0</tlib-version>
    <short-name>c,</short-name>
    <uri>http://MyApp.com/TagLibs/Community.tld</uri>
     <function>
         <name>getCommunityInformation</name>
        <function-class>classPath.CommunityClass</function-class>
        <function-signature>
            int getCommunityInformation(int)
        </function-signature>
    </function>
</taglib>
On your JSP include:
<%@ taglib prefix="cm:" uri="http://MyApp.com/TagLibs/Community.tld"%>
...
<c:set var="idCommunity" value="${cm:idCommunity.getCommunityInformation(id)}"/>


0
 

Author Comment

by:hgbdelphi
ID: 12366753
thanks!
  i will change some code like you,and another i will do this
<c:set var="idCommunity" value="<%=idCommunity.getCommunityInformation(id)%>"/>
0

Featured Post

Ask an Anonymous Question!

Don't feel intimidated by what you don't know. Ask your question anonymously. It's easy! Learn more and upgrade.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I had a project requirement for a displaying a user workbench .This workbench would consist multiple data grids .In each grid the user will be able to see a large number of data. These data grids should allow the user to 1. Sort 2. Export the …
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

609 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question