Link to home
Start Free TrialLog in
Avatar of Mark
Mark

asked on

howto do dynamic inlude of functions in jsp

I want to call a function that returns a value which I will embed in my jsp output via <%=scIdMinLen()%>. Simple enough so far. I want to include this function's source at runtime. Also simple enough. The included file is shown below in the Code Snippet section and I can include it with:
<%@ include file="OH/stateFunctions.inc"%>

The tricky part is I want to include a different source depending on what state I am processing. I've tried the following:

<jsp:include page="<%=stateCD + \"/stateFunctions.inc\"%>" />

This syntax works fine if the file contains html, but for the source shown in Code Snippet I get:

An error occurred at line: 180 in the jsp file: /newCase.jsp
The method scIdMinLen() is undefined for the type newCase_jsp

How can I do this?

<%!
// Functions for Ohio
 
private Integer scIdMinLen()
{
    return 6;
}
 
private Integer scIdMaxLen()
{
    return 6;
}
%>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of rrz
rrz
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Can you give the source code of your JSP file?

I suggest that you create this string dynamically and put in a scriptlet
<jsp:include page="<%=stateCD + \"/stateFunctions.inc\"%>" />

something like
String jspInclude =  "<jsp:include page=" + stateCD  + "stateFunctions.inc";

and then
<%= jspInclude  %>

Try this and let me know
The  <jsp:include>  action doesn't include the actual  contents of the specified page;  it includes the response produced by  executing the page.  
Avatar of Mark
Mark

ASKER

Sorry, would like to pursue this more as it is still an issue, but I have other priorities and EE won't let me post w/o closing this first. Will revisit
Just ask us here, when you get back to it. We will be listening.  rrz