Include jsp versus seperate class/bean versus taglib
Hi friends,
I am working on Servlet/JSP project. There are large no. of jsp pages. A common set of methods get repeated in all the jsp pages. Now my concen is to separate out the methods in a file and then use it in jsp page.
Kindly suggest me the right path to follow, taking into consideration that we take up the optimized solution and performance-wise also feasible.
Whether I should go for
1. Using 'include jsp'
2. using 'taglib'
3. creating a seperate utility class with the required methods and 'import' it in the JSP pages.
Kindly reply ASAP.
Thanks in advance.
Regards.
I would suggest you should go for user defined tags.
This would ensure that the business functionality is isolated from your web objects and it would be modular to maintain.
Using simple classes will add java code to your JSP pages, which makes them less readable.
Apart from that implicit object creation by the Servlet/JSP engine(which are instantiating and garbage collecting the taglib objects) will be more efficient.
Hope this helps
regards
Ravi
Similar Messages
-
Hi I am trying to deploy a struts based web application using "DynaActionForms"
When I am trying to access the jsp page I am getting the following error.
I am providing as much as details as it can help full to u.
Thank u.
FormBean class ProdFormFB.java
========================================================================
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class ProdFormFB extends DynaActionForm
public void reset(ActionMapping mapping, HttpServletRequest request)
System.out.println("reset() called. . . . ");
set("prodId", new Integer(10));
set("prodName", new String("XYZ"));
set("price", new Float(22.25));
public ActionErrors validate(ActionMapping mappings, HttpServletRequest request)
System.out.println("=== validate() called ===");
ActionErrors aes=new ActionErrors();
System.out.println("aes.size() ===> "+aes.size());
String prodName = (String)get("prodName");
if( prodName==null || prodName.equals("") )
System.out.println("Adding prodName.req error . . . . . . .");
aes.add("prodName",new ActionError ("prodName.req.error"));
return aes;
========================================================================
Action Class ProdAction.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
public class ProdAction extends Action
public ActionForward execute(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response)throws Exception
ProdFormFB fb = (ProdFormFB)form;
System.out.println("fb.get('prodId')==> "+fb.get("prodId"));
System.out.println("fb.get('prodName')==> "+fb.get("prodName"));
System.out.println("fb.get('price')==> "+fb.get("price"));
return mapping.findForward("dres");
}========================================================================
jsp page : npform.jsp
<%@ taglib uri = "/tags/struts-html" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:html>
<head>
<title>Product Form</title>
</head>
<body>
<html:form action="/pAction">
<center>
<br><br>
<center> <font color="green" style="bold" size=5>Product Form using Struts</font></center><br><br>
<table>
<tr>
<td>
<b> Product ID : </b> <html:text property="prodId"/> </td><td><font color="red" style="bold"><html:errors property="prodId"/> </font>
</td>
</tr>
<tr>
<td>
<b> Prod Name : </b> <html:text property="prodName"/> </td><td> <font color="red" style="bold"> <html:errors property="prodName"/> </font>
</td>
</tr>
<!-- <tr>
<td>
<b> Price : </b> <html:text property="price"/> </td><td> <font color="red" style="bold"> <html:errors property="price"/> </font>
</td>
</tr> -->
<tr colspan="2" align="center">
<td>
<html:submit property="submit" value="Store"/>
</td>
</tr>
</table>
</center>
</html:form>
</body>
</html:html>========================================================================
Configuration in struts-config.jsp
<form-beans>
<form-bean name="NewProdForm" type="ProdFormFB">
<form-property name="prodId" type="java.land.Integer"/>
<form-property name="prodName" type="java.land.String"/>
<form-property name="price" type="java.land.Float"/>
</form-bean>
</form-beans>
<action-mappings>
<action name="NewProdForm" path="/pAction" type="ProdAction" input="/npform.jsp" validate="true" scope="request">
<forward name="dres" path="/dres.jsp"/>
</action>
</action-mappings>========================================================================
After deploying successfully I am I am entering the following URL
http://localhost:7001/oursapp/npform.jsp
The following Exception on Browser: and also on the server console ......
javax.servlet.jsp.JspException: Exception creating bean of class ProdFormFB: {1}
at org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:463)
at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:433)
at jsp_servlet.__npform._jspService(__npform.java:178)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
Plz... Help me out is solving the problem .......
my email : [email protected]I never used DynaActionForm, what I have noticed here is, don't you need to declare the form bean? I may be wrong.
<form-beans>
<form-bean name="newProdForm" type="com.package.form.NewProdForm"></form-bean>
</form-beans> -
Problems with managed beans on included JSPs
I've got a problem with managed beans within an included JSP
The included page looks as follows:
<f:subview id="includedPage" binding="#{testBean.component}">
<h:outputText value="Hallo from the included page"/>
<h:outputText value="#{testBean.msg}" />
</f:subview>The including page is also very simple
<f:view>
<html>
<head>
<title>Test include</title>
</head>
<body>
<h:outputText value="Hello from the including page"/>
<jsp:include page="included.jsp"/>
</body>
</html>
</f:view>The testBean is a managed bean with page scope and looks as follows:
public class TestBean {
public UIComponent fComponent;
public TestBean() {
System.out.println("TestBean Constructor called " + toString() );
public String getMsg() {
return "Component = " + fComponent ;
public void setComponent(UIComponent component) {
System.out.println("setComponent called " + component);
fComponent = component;
public UIComponent getComponent() {
System.out.println("getComponent called " + fComponent);
return fComponent;
}The output to the console is:
TestBean Constructor called de.kvb.athena.web.beans.TestBean@1bc16f0
getComponent called null
TestBean Constructor called de.kvb.athena.web.beans.TestBean@18622f3
setComponent called javax.faces.component.UINamingContainer@160877b
TestBean Constructor called de.kvb.athena.web.beans.TestBean@5eb489
and the page displays
Hello from the include page
Hello from the included page Component = null
Can anyone explain this behavior ? What's the reason that the page displays
Component = null
and is it possible to display the parent naming container (subview) this way ?
how ?
ThanksBy "page scope" I assume you mean "none"? If so JSF creates a new bean for each place it's referenced. The closest to the behavior you want, once per "page", is really request scope.
(I'm not sure why the constructor is being called thrice, though. I should look into this.)
I assume you want a bean-per-subview scenario. This should be doable, and one way that allows a dynamic number of subviews would be as follows:
--create a "manager" bean in request scope
--give it get/set methods that retrieves a Map of "TestBean" instances; the idea is that each subview use a different key "s1", "s2", etc
back the manager method with Map implementation that checks if there's already a TestBean associated with the key returns it if yes, else null.
If that seems messy, the component solution is hairy :-) See http://forum.java.sun.com/thread.jspa?threadID=568937&messageID=2812561
--A -
9.0.3 Preview - Class not found error after including jsp:useBean
Hi,
I got a Java.lang.NoClassDefFoundError while compiling a JSP Page, after including a simple web bean as follows:
<jsp:useBean id="catviews" scope="request" class="CategoryView" />
<jsp:setProperty name="catviews" property="*" />
somewhere within the HTML page...
<%= catviews.getCategory() %>
The JSP page without the bean compiles fine and the Javabean itself compiles without error. The bean class is where JDev automatically puts it (i.e in a sub-directory of the classes directory within the project) and JDev does not raise any error on that JSP Page before compiling.
The error seems to point to the first line of the page, to the directive of the JSP page:
<%@ contentType="text/html" ... %> which is apparently harmless. What can be wrong ?
Thanks for your reply.'Class not found' means 'Class not found' , the class you are referencing is not in your project's classpath. You should make sure your project's classpath point to the location where this class is deployed to. This could be a directory or a .jar file. You should also include the package name as part fo the class.
-
Java class bean can not access to DB in JSP file
Hi, I wrote a java class bean in order to access to MySql database ,and this bean is used in a JSP file,so that the bean can query from DB and then display the queried information on the JSP file,but it can not work correctly,the following is the source code and error message popup by the system,
does anybody has experience in solving thus question,Please reply ,Thank you for your help.
%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import = "java.sql.*" %>
<jsp:useBean id="conn" scope="page" class="news.conn"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>1</title>
<style>
<!--
A:link {
COLOR: #993399
.s {
FONT-SIZE: 13px; LINE-HEIGHT: 170%; FONT-FAMILY: "utf-8"
-->
</style>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="100%">
<img border="0" src="images/ruanjian.jpg" width="770" height="154"></td>
</tr>
<tr>
<td width="100%">@</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
<tr>
<td width="13%">@</td>
<td width="87%">
<img border="0" src="images/mid-rdxw2.gif" width="101" height="18"><p>
<%
ResultSet rs,rsNest;
String strSql=null;
strSql = "select * from news where TYPE=1";
rs = conn.executeQuery(strSql);
while (rs.next()){
%>
<span class="s"> <a href="newsContent.jsp?newsId=<%=rs.getInt(id")%">"><%=rs.getString("Title")%></a><br>
<%
%>
<p>
<img border="0" src="images/mid-hyxw2.gif" width="94" height="19"></p>
<%
strSql="select * from news where TYPE=2";
rs = conn.executeQuery(strSql);
while (rs.next()){
%>
<span class="s"> <a href="newsContent.jsp?newsId=<%=rs.getInt("id")%>"><%=rs.getString("Title")%></a><br>
<%
%>
<p>@</td>
</tr>
</table>
<p align="center">Study Online</p>
<p align="center">@</p>
</body>
</html>
Error message:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /newsMain.jsp:47
44: strSql = "select * from news where TYPE=1";
45: rs = conn.executeQuery(strSql);
46:
47: while (rs.next()){
48:
49: %>
50:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause
java.lang.NullPointerException
org.apache.jsp.newsMain_jsp._jspService(newsMain_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 l</a>nogoodatcoding wrote:
Tolls wrote:
Is that Jasper Exception telling us where the problem is in the jsp, though?
If it is, then "rs" is null in the call rs.next()...which means conn.executeQuery() is returning null. Which means that whatever class conn is (news.conn?) has a problem maybe?That's possible. Though, it may just be the case that the 'conn' object itself is null! That line is the first place where it's being used and there are no checks that I can see...we'll have to wait for the OP to investigate and reply I guess.That's what I originally thought, then I noticed it was saying line 47, which is the rs.next() line. Assuming Jasper is correct in its choice of line, then it's the rs that's null. Which means the conn is doing strange things.
Edit: Now that I think about it, going by the previous thread the OP posted, I'm wondering whether news.conn class is their attempt to move the JDBC stuff out of the JSP page, and it's grabbing the "real" connection (java.sql.Connection) and getting the result set and returning it...or getting something wrong and returning null.
Edited by: Tolls on 11-Jun-2009 12:24 -
Hi
i have a form from which i am gettin values and i am using struts to get those values and perform actions in my DAO,
i am able to retrieve values from DAO but the value is not gettin printed in front end.. its throwing
"javax.servlet.jsp.JspException: Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope" error
got any suggestions
thankxGot the solution,. i had closed my <html:form> before closing one of my <html:form>
thankx -
JSP can't find bean class!!!!!
First of all, I'm using jdk1.4 beta and Jakarta's tomcat version 4.0.1 release build.
Hello. I desparately need help. I have a JavaBean class ("CarBean.class") saved in %catalina_home%\webapps\root\myapp\web-inf\classes\com\wrox\cars\CarBean.class
I also have a jsp page saved as carpage.jsp in %catalina_home%\webapps\root\myapp\
So when I point my browser to http://localhost:8080/myapp/carpage.jsp, I get an internal server error. It appears it can't find the JavaBean class for some reason. I'm pretty sure I have my envionment variables set up right. I can get it to work, if I save the JavaBean class in c:\jdk1.4\jre\class\com\wrox\cars
Here's my JavaBean class source file:
package com.wrox.cars;
import java.io.Serializable;
public class CarBean implements Serializable {
public CarBean() {
private String make = "Ford";
public String getMake() {
return make;
public void setMake(String make) {
this.make = make;
and here's my jsp page:
<html>
<head>
<title>Using a JavaBean</title>
</head>
<body>
<h2>Using a JavaBean</h2>
<% com.wrox.cars.CarBean myCar = new com.wrox.cars.CarBean(); %>
I own a <%= myCar.getMake() %>
<% myCar.setMake("Ferrari"); %>
Now I own a <%= myCar.getMake() %>
</body>
</html>
This is the only thing I've modified in the server.xml file:
<Context path="/myapp" docBase="myapp" debug="0" reloadable="true"/>
I'm not new to java, just JSP. I just don't know why I can't get the jsp to locate the JavaBean class. I remember I used to have an older version of Tomcat and I recall not having any problems. It seems the Tomcat 4.XX is somewhat significantly different than previous versions. Perhaps I configured my Tomcat or server.xml wrong? Help would be greatly appreciated. Thanks.Hi,
I am having a similar problem. I was wondering if you found a solution. The error I get is listed below. I have my jsp file at ../webapps/ROOT/myapp/web and my bean file located at ../webapps/ROOT/myapp//src.
Any help will be highly appreciated
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
An error occurred at line: 8 in the jsp file: /DataBaseSelect.jsp
Generated servlet error:
D:\WeeklyReportProject\jwsdp-1_0_01\work\Standard Engine\localhost\Test\DataBaseSelect$jsp.java:61: Class org.apache.jsp.DataBaseSelect not found.
DataBaseSelect select = null;
^
An error occurred at line: 8 in the jsp file: /DataBaseSelect.jsp
Generated servlet error:
D:\WeeklyReportProject\jwsdp-1_0_01\work\Standard Engine\localhost\Test\DataBaseSelect$jsp.java:64: Class org.apache.jsp.DataBaseSelect not found.
select= (DataBaseSelect)
^
An error occurred at line: 8 in the jsp file: /DataBaseSelect.jsp
Generated servlet error:
D:\WeeklyReportProject\jwsdp-1_0_01\work\Standard Engine\localhost\Test\DataBaseSelect$jsp.java:69: Class org.apache.jsp.DataBaseSelect not found.
select = (DataBaseSelect) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "DataBaseSelect");
^
3 errors, 1 warning -
I am having a problem relacing the include file of let's call it a
header.jsp in a menu page named menu.jsp.
So in my header.jsp file let's say I do something simple like
<table>
<tr><td><jato:href name="first">First Option
</jato:href></td></tr></table>
and so on....
And in my main.jsp I have a simple include at the top of my page
like so
<html
<body>
<%include file=header.jsp%>
etc.
Now when JRun 3.0 makes the include replacement, it seems to have a
problem where it tells me
Servlet error 500
com.iplanet.jato.view href : taglib navigation not found
BUT when I take out the jato tags in the include file...I can get
JRun to make the replacement perfectly....
Does anyone else have this problem and if so how did you get around
it?Sorry to bother you again, but I couldn't find anything that looked strange
is this file. Can you send us the original file at our personal email
addresses? I'd like to see exactly where the compilation error occurs and
it's not possible with the file inlined here.
todd.fast@e...
michael.frisino@s...
Thanks,
Todd
----- Original Message -----
From: <suket@u...>
Sent: Wednesday, January 17, 2001 2:02
Subject: [iPlanet-JATO] Re: include jsp tags
Hi Mike,
Both of the jsp files (pgHelp.jsp and pgFooter.jsp)
are in the same folder. I removed the IPP/ipp portion in the
include directive but still giving the same err.
iam using Allair Jrun 3.0.
Here is the intermediary generated Jsp file
/ Generated by JRun, do not edit
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import allaire.jrun.jsp.JRunJSPStaticHelpers;
public class jrun__IPP__ipp__pgHelp2ejsp13 extends
allaire.jrun.jsp.HttpJSPServlet implements
allaire.jrun.jsp.JRunJspPage
private ServletConfig config;
private ServletContext application;
private Object page = this;
private JspFactory __jspFactory = JspFactory.getDefaultFactory();
public void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, java.io.IOException
if(config == null) {
config = getServletConfig();
application = config.getServletContext();
response.setContentType("text/html; charset=ISO-8859-1");
PageContext pageContext = __jspFactory.getPageContext(this,
request, response, null, true, 8192, true);
JspWriter out = pageContext.getOut();
HttpSession session = pageContext.getSession();
try {
out.print("\r\n\r\n");
IPP.ipp.pgHelpViewBean viewBean = (IPP.ipp.pgHelpViewBean)
pageContext.getAttribute("viewBean", PageContext.REQUEST_SCOPE);
if(viewBean == null) {
if(JRunJSPStaticHelpers.getAndSetBean(pageContext,
"viewBean", IPP.ipp.pgHelpViewBean.class
, PageContext.REQUEST_SCOPE, 3)) {
viewBean = (IPP.ipp.pgHelpViewBean)pageContext.getAttribute
("viewBean", PageContext.REQUEST_SCOPE);
} else {
viewBean = (IPP.ipp.pgHelpViewBean)pageContext.getAttribute
("viewBean", PageContext.REQUEST_SCOPE);
pageContext.setAttribute("viewBean",viewBean);
out.print("\r\n");
com.iplanet.jato.taglib.UseViewBeanTag useViewBean__4_1 =
(com.iplanet.jato.taglib.UseViewBeanTag)
JRunJSPStaticHelpers.createTagHandler(pageContext,
"com.iplanet.jato.taglib.UseViewBeanTag");
useViewBean__4_1.setPageContext(pageContext);
useViewBean__4_1.setParent(null);
useViewBean__4_1.setClassName("IPP.ipp.pgHelpViewBean");
int useViewBean__4_1_startVal = useViewBean__4_1.doStartTag();
JRunJSPStaticHelpers.checkStartVal
("com.iplanet.jato.taglib.UseViewBeanTag",useViewBean__4_1_startVal,Bo
dyTag.EVAL_BODY_INCLUDE,4);
if(useViewBean__4_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
com.iplanet.jato.view.ContainerView currentView =
(com.iplanet.jato.view.ContainerView)pageContext.getAttribute
("currentView");
com.iplanet.jato.view.TiledView currentTiledView =
(com.iplanet.jato.view.TiledView)pageContext.getAttribute
("currentTiledView");
out.print("\r\n<HTML>\r\n<HEAD><!--jato:text name=\"stTemp\"
fireDisplayEvents=\"true\" escape=\"true\" /--><!-- Added Temporarily
by ravindran on 8th jan 2001 -->\r\n");
com.iplanet.jato.taglib.TextFieldTag textField__7_1 =
(com.iplanet.jato.taglib.TextFieldTag)
JRunJSPStaticHelpers.createTagHandler(pageContext,
"com.iplanet.jato.taglib.TextFieldTag");
textField__7_1.setPageContext(pageContext);
textField__7_1.setParent(useViewBean__4_1);
textField__7_1.setSize("20");
textField__7_1.setMaxLength("20");
textField__7_1.setFireDisplayEvents("true");
textField__7_1.setName("tbUserID");
textField__7_1.doStartTag();
if(textField__7_1.doEndTag() == Tag.SKIP_PAGE) {
if(true) return;
out.print("\r\n<TITLE>pgHelp</TITLE>\r\n</HEAD>\r\n<body BGCOLOR=
\"white\" bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\" vlink=
\"#800080\" alink=\"#FF0000\">\r\n");
com.iplanet.jato.taglib.FormTag form__11_1 =
(com.iplanet.jato.taglib.FormTag)JRunJSPStaticHelpers.createTagHandler
(pageContext, "com.iplanet.jato.taglib.FormTag");
form__11_1.setPageContext(pageContext);
form__11_1.setParent(useViewBean__4_1);
form__11_1.setMethod("post");
form__11_1.setName("pgHelp");
int form__11_1_startVal = form__11_1.doStartTag();
JRunJSPStaticHelpers.checkStartVal
("com.iplanet.jato.taglib.FormTag",form__11_1_startVal,BodyTag.EVAL_BO
DY_INCLUDE,11);
if(form__11_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
out.print("\r\n");
if(form__11_1.doEndTag() == Tag.SKIP_PAGE) {
if(true) return;
out.print("\r\n");
com.iplanet.jato.taglib.UseContainerViewTag view__1_1 =
(com.iplanet.jato.taglib.UseContainerViewTag)
JRunJSPStaticHelpers.createTagHandler(pageContext,
"com.iplanet.jato.taglib.UseContainerViewTag");
view__1_1.setPageContext(pageContext);
view__1_1.setParent(null);
view__1_1.setName("IPP.ipp.pgFooterViewBean");
int view__1_1_startVal = view__1_1.doStartTag();
JRunJSPStaticHelpers.checkStartVal
("com.iplanet.jato.taglib.UseContainerViewTag",view__1_1_startVal,Body
Tag.EVAL_BODY_INCLUDE,1);
if(view__1_1_startVal == BodyTag.EVAL_BODY_INCLUDE) {
currentView = (com.iplanet.jato.view.ContainerView)
pageContext.getAttribute("currentView");
currentTiledView = (com.iplanet.jato.view.TiledView)
pageContext.getAttribute("currentTiledView");
com.iplanet.jato.view.ContainerView
IPP.ipp.pgFooterViewBean = (com.iplanet.jato.view.ContainerView)
pageContext.getAttribute("IPP.ipp.pgFooterViewBean");
out.print("\r\n<hr color=red size=2>\r\nfrom new_footer.jsp in
IPP/ipp directory\r\n<font size=\"-2\" face=\"Arial\"><i>Send
comments to <a href=\"mailto:supportdept@a...\">Any
Company</a></i></font>\r\n<hr color=red size=2>\r\n");
com.iplanet.jato.taglib.HiddenTag hidden__6_1 =
(com.iplanet.jato.taglib.HiddenTag)
JRunJSPStaticHelpers.createTagHandler(pageContext,
"com.iplanet.jato.taglib.HiddenTag");
hidden__6_1.setPageContext(pageContext);
hidden__6_1.setParent(view__1_1);
hidden__6_1.setFireDisplayEvents("true");
hidden__6_1.setName("hdFooter");
hidden__6_1.doStartTag();
if(hidden__6_1.doEndTag() == Tag.SKIP_PAGE) {
if(true) return;
out.print("\r\n");
if(view__1_1.doEndTag() == Tag.SKIP_PAGE) {
if(true) return;
out.print("\r\n");
out.print("\r\n</BODY> \r\n</HTML>\r\n");
if(useViewBean__4_1.doEndTag() == Tag.SKIP_PAGE) {
if(true) return;
} catch(Throwable t) {
if(t instanceof ServletException)
throw (ServletException) t;
if(t instanceof java.io.IOException)
throw (java.io.IOException) t;
if(t instanceof RuntimeException)
throw (RuntimeException) t;
throw JRunJSPStaticHelpers.handleException(t,
pageContext);
} finally {
__jspFactory.releasePageContext(pageContext);
public String getServletInfo()
return "pgHelp";
private static final String[] __dependencies__ =
{"/IPP/ipp/pgHelp.jsp",null};
private static final long[] __times__ = {979720473658L,0L};
public String[] __getDependencies()
return __dependencies__;
public long[] __getLastModifiedTimes()
return __times__;
public int __getTranslationVersion()
return 14;
it is generating 2 semicolons automatically..
near pageContext.getAttribute("IPP.ipp.pgFooterViewBean");
regards
ravi
In [email protected], "Mike Frisino" <Michael.Frisino@S...>
wrote:
Hi Suket,
I just retested something very similar to this in 1.0.
Essentially, i took an existing page which included a tiledView.
I moved the TiledView jsp block into an entirely separate jsp file.
I then replace the TiledView jsp block in the original jsp with aninclude
<%@ include file="TiledGetOrders.jsp"%>
It worked like a charm.
So I am not sure what is wrong in your case.
Could be a jrun bug?
I have tested in resin 1.2.1
To do proper analysis, we would need to see
1. The intermediary .java file that the jsp engine creates, andthen tries
to compile.
C:/Program
Files/Allaire/JRun/servers/default/ipp/WEB-INF/jsp/jrun__IPP__ipp__pgHelp2ej
sp.java
Can you send that to us?
Incidentally, although we do not think a problem there would causethe
compile time error you are seeing,
i am curious about your file value.
<%@ include file="/IPP/ipp/pgFooter.jsp"%>I did not need to use a qualified file name, although my includetarget file
was in the same directory as the
page that was including it. What is the file system relationshipbetween
your top level page "pgHelp" and the include
target "pgFooter".
Are they in same or diff directories?
----- Original Message -----
From: <suket@u...>
Sent: Tuesday, January 16, 2001 9:42 PM
Subject: [iPlanet-JATO] Re: include jsp tags
Hi,
We tried to follow the steps described by you to have
dynamic include in a jsp page.
my jsp file content is
<%@p... info="pgHelp" language="java"%>
<%@t... uri="/WEB-INF/jato.tld" prefix="jato"%>
<jsp:useBean id="viewBean" class="IPP.ipp.pgHelpViewBean"
scope="request"></jsp:useBean>
<jato:useViewBean className="IPP.ipp.pgHelpViewBean">
<HTML>
<HEAD>
<jato:textField name="tbUserID" size="20" maxLength="20"
fireDisplayEvents="true" />
<TITLE>pgHelp</TITLE>
</HEAD>
<body BGCOLOR="white" bgcolor="#FFFFFF" text="#000000"
link="#0000FF" vlink="#800080" alink="#FF0000">
<jato:form name="pgHelp" method="post">
</jato:form>
<%@ include file="/IPP/ipp/pgFooter.jsp"%>
</BODY>
</HTML>
</jato:useViewBean>
This is my pgFooter.jsp
<jato:view name="IPP.ipp.pgFooterViewBean">
<hr color=red size=2>
from new_footer.jsp in IPP/ipp directory
<font size="-2" face="Arial"><i>Send comments to <a
href="mailto:<a href="/group/SunONE-JATO/post?protectID=061075104115193209050223163176249165134048139046">supportdept@a...</a>">Any Company</a></i></font>
<hr color=red size=2>
<jato:hidden name="hdFooter" fireDisplayEvents="true" />
</jato:view>
There is no compilation error in pgFooterViewBean and in
pgHelpViewBean.
How ever iam getting a runtime error,
500 Internal Server Error
/ipp/servlet/IPP.ipp.ippServlet:
javax.servlet.ServletException: Compilation error occured:
allaire.jrun.scripting.DefaultCFE:
Errors reported by compiler:C:/Program
Files/Allaire/JRun/servers/default/ipp/WEB-
INF/jsp/jrun__IPP__ipp__pgHelp2ejsp13.java:105:50:105:50: Syntax:
expected instead of this token
What could be the reason for this error message?
We tried the same thing with another approach, instead of using
include directive, we directly copied the code of pgFooter.jsp in
pghelp.jsp.
even that is giving the same error..
<%@p... info="pgHelp" language="java"%>
<%@t... uri="/WEB-INF/jato.tld" prefix="jato"%>
<jsp:useBean id="viewBean" class="IPP.ipp.pgHelpViewBean"
scope="request"></jsp:useBean>
<jato:useViewBean className="IPP.ipp.pgHelpViewBean">
<HTML>
<HEAD>
<jato:textField name="tbUserID" size="20" maxLength="20"
fireDisplayEvents="true" />
<TITLE>pgHelp</TITLE>
</HEAD>
<body BGCOLOR="white" bgcolor="#FFFFFF" text="#000000"
link="#0000FF" vlink="#800080" alink="#FF0000">
<jato:form name="pgHelp" method="post">
</jato:form>
<jato:view name="IPP.ipp.pgFooterViewBean">
<hr color=red size=2>
from new_footer.jsp in IPP/ipp directory
<font size="-2" face="Arial"><i>Send comments to <a
href="mailto:<a href="/group/SunONE-JATO/post?protectID=061075104115193209050223163176249165134048139046">supportdept@a...</a>">Any Company</a></i></font>
<hr color=red size=2>
<jato:hidden name="hdFooter" fireDisplayEvents="true" />
</jato:view>
</BODY>
</HTML>
</jato:useViewBean>
Please give us a feasible solution to solve this problem.
Thx
Ravi
--- In [email protected], "Todd Fast" <Todd.Fast@S...>wrote:
Craig & Eric--
(If you're not interested in the resolution to the problem Craigposted,
please skip ahead to the section in which I describe the
preferred
technique
for including headers and other common content in a JATO page.
This
discussion is very important because I introduce the concept of"view
compostion", in which JATO pages are composed of modular andreusable view
components. This is one of the most powerful new features of
JATO,
and a
capability that simply wasn't possible in NetDynamics.)
Posted Problem Resolution
Craig & Eric, from what I can tell, you are both trying to
include
a full
view bean in a parent page at translation time. This is notpossible, as
you can see from the compiler errors you get. There are
collisions
when
multiple top-level tags are included in the same JSP.
When I said earlier that you needed to use a translation-timeinclude
instead of a run-time include, I was assuming that you were
trying
to
include a fragment of HTML/JSP in the parent page. By
fragment, I
mean HTML
or JSP content that does not declare a view bean or form, but
rather
references views contained within the parent view bean. If youwant to
include a full page (JSP + ViewBean) in another page, then you'dneed to use
a run-time include. A run-time include temporarily pauses therendering of
the current page, and sends the full request to the included
page
as if it
were a separate client request. The resulting content from theincluded
page is inlined into the parent page's content, and processing
of
the parent
page then continues.
Now I realize after thinking about it a bit that we may not have
sufficiently provided for full page includes because of some
late-
breaking
changes in the request context handling. After some basic
testing,
it
appears that if you try to include one JATO page in another byreferencing
the JSP, the included page will cause a class cast exception tooccur.
There may also be problems because the request context on theincluded page
will not have been set. In any case, full JATO page inclusionlooks like
it's an issue we're going to have to address with some fixes
before
it will
work properly. My apologies. (One workaround if this is
necessary
is to
make the included view bean a child view of the parent view
bean.
I won't
go into that however).
How to Include Common Content
Now, on to the discussion of the preferred way of including
common
content
in a JATO page. Let's say you have a common header you want toinclude in
one or more of your JATO pages. Because of the issue I notedabove, and the
fact that the header is not really independently displayable,
you
don't want
to do a run-time include (which, remember, would necessitateincluding a
full JATO page).
Instead, you should include the header as an HTML/JSP fragmentusing a
translation-time include. Depending on whether your header hasdynamic
information, you can do one of two things. If the header is
just
static
content and/or set of links, you can just reference the HTMLfragment in the
parent HTML directly, and you won't need any kind of view or
view
bean to
back it, or any reference to anything in JATO.
If you need some dynamic info in the header, like the module URLfor a link,
you can reference the parent page's view bean for this
information
by simply
including references to the parent page's implicit JSP variables(viewBean,
currentVIew, and currentTiledView). For example:
Parent JSP:
<jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
<jato:useViewBean className="..." fireChildDisplayEvents="true">
<%@ include file="MyInclude.jsp" %>
</jato:useViewBean>
Included content (MyInclude.jsp):
... viewBean.getRequestContext().getModuleURL() ...
The final HTML with the included content would then look like
this:
<jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
<jato:useViewBean className="..." fireChildDisplayEvents="true">
... viewBean.getRequestContext().getModuleURL() ...
</jato:useViewBean>
MyInclude.jsp will be inlined in the parent JSP before it istranslated to a
servlet. Note that it does not include the full HTML tags
normally
found in
an HTML file--there are no <html>, <head>, or <body> tags
because
it is not
expected to be used outside of an include page. In effect,
this is
the
equivalent of a server-side include (SSI).
Now, if you need truly dynamic info in the header, like say youwant to
display the user's name and SSN, then you'd likely want to
embed a
child
view in the parent view bean which will encapsulate & provide
the
necessary
information. This is in contrast to actually making these
fields
direct
children of the the parent view bean, which would be a tedious
and
error
prone task on every page you wanted to include this information.Let me try
to contrast these two approaches with a diagram of parent-child
relationships:
Here's the bad way:
ParentViewBean (ViewBean)
|
+-- UserFirstName (StaticTextField)
|
+-- UserSSN (StaticTextField)
In this situation, you'd need to provide the logic to populatethese fields
in every view bean on which they appeared. This is tedious andessentially
eliminates the "common"-ness of the content (this is also whatNetDynamics
forced people to do).
Now, the better way:
ParentViewBean (ViewBean)
|
+-- MyHeaderView (MyHeaderView.java)
|
+-- UserFirstName (StaticTextField)
|
+-- UserSSN (StaticTextField)
In the better way, you can see that the header information isencapsulated
in an instance of "MyHeaderView", which is a subclass ofContainerViewBase
or one of the other ContainerView subtypes. The population of
the
data
fields is encapsulated in that view, and the parent view need
not
know
anything about what's actually being displayed by that view.
Thus, you can see that MyHeaderView, in conjunction with a
snippet
of JSP
content in a companion file, is completely modular and can beembedded in
any parent view bean on which you want the header to appear.
The
only
requirement is then to include MyHeaderView as a child view of
the
parent
view bean, and to include the correct JSP content that
references
that child
view.
The included JSP content would now look something like this:
<jato:view name="MyHeaderView">
<table>
<tr><td>... <jato:staticText name="UserFirstName"/>
...</td></tr>
<tr><td>... <jato:staticText name="UserSSN"/> ...</td></tr>
</table>
</jato:view>
If we now included this content in the parent JSP from furtherabove, we get
the following as the JSP content before it is translated into aservlet:
<jsp:useBean id="viewBean" class="..."scope="request"></jsp:useBean>
<jato:useViewBean className="..." fireChildDisplayEvents="true">
<jato:view name="MyHeaderView">
<table>
<tr><td>... <jato:staticText name="UserFirstName"/>
...</td></tr>
<tr><td>... <jato:staticText name="UserSSN"/> ...</td></tr>
</table>
</jato:view>
</jato:useViewBean>
Ultimately, this technique is called "view compostion" or "view
aggregation", and is one of the major new features of JATO. Youcan now
define reusable view components and embed them in multiple viewcontainers,
on the same page or on different pages. Each page acts as a
frame,
in which
you provide the contents from modular components. Using thistechnique, you
can develop reusable view classes and chunks of JSP that can bearbitrarily
combined into complex pages.
I know this is a long and rambling discussion, but I hope I've
made
myself
at least partly clear. I'm more than happy to clarify anything
or
elaborate
more. Please let me know.
Todd
Todd Fast
Senior Engineer
Sun/Netscape Alliance
todd.fast@e...
[email protected]
[email protected] -
Custom tag in included JSP page cause exception (WLS 5.1 SP 9)
An application use custom tags (JSP Tag extensions) in JSP page
included into another JSP page by means <jsp:include> instruction.
After we had installed Service Pack 9 for Weblogic 5.1
browser's call of including JSP began show an error.
When I remove Weblogic510sp9.jar and Weblogic510sp9boot.jar
references from startWebLogic.cmd, the error diagnostic disappear.
Is Service Pack Number 9 wrong?
==========================
Web browser diagnostic:
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling
the request.
==========================
Console diagnostic:
Tue Jun 05 17:40:14 MSD 2001:<I> <WebAppServletContext-dscat> looking for taglib
uri /exttags.tld as resource /WEB-INF/e
xttags.tld in Web Application root:
Tue Jun 05 17:40:15 MSD 2001:<I> <WebAppServletContext-dscat> Generated java file:
C:\weblogic\dscat\WEB-INF\_tmp_war_ds
cat\jsp_servlet\_jsp\_opos\_catalog.java
Tue Jun 05 17:40:25 MSD 2001:<E> <WebAppServletContext-dscat> Servlet failed with
Exception
java.lang.VerifyError: (class: jsp_servlet/_jsp/_opos/_catalog, method: _jspService
signature: (Ljavax/servlet/http/Http
ServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Register 12 contains
wrong type
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Unknown Source)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:469)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java,
Compiled Code)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:442)
at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:228)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:115)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915)
at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879)
at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled Code)
==========================
Including JSP file:
<%@ include file="catalog_real.jsp" %>
==========================
Included JSP file:
<%@ taglib uri="/exttags.tld" prefix="dscat" %>
<dscat:pageheader>Catalog header</dscat:pageheader>
==========================
Tag extansions library (WEB-INF/exttags.tld file):
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>dscat</shortname>
<tag>
<name>pageheader</name>
<tagclass>ru.ibs.xbcat.view.tag.PageHeader</tagclass>
</tag>
</taglib>
==========================
Class PageHeader:
package ru.ibs.xbcat.view.tag;
import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class PageHeader extends BodyTagSupport {
public int doStartTag() throws javax.servlet.jsp.JspException {
return BodyTag.EVAL_BODY_TAG;
public int doAfterBody() throws javax.servlet.jsp.JspException {
return(SKIP_BODY);
Are you using Jikes? See if this helps ...
http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=article&group=weblogic.developer.interest.jsp&item=6287&utag=
Mike
"Radik Usmanov" <[email protected]> wrote:
>
>An application use custom tags (JSP Tag extensions) in JSP page
>included into another JSP page by means <jsp:include> instruction.
>
>After we had installed Service Pack 9 for Weblogic 5.1
>browser's call of including JSP began show an error.
>When I remove Weblogic510sp9.jar and Weblogic510sp9boot.jar
>references from startWebLogic.cmd, the error diagnostic disappear.
>
>Is Service Pack Number 9 wrong?
>==========================
>Web browser diagnostic:
>
>Error 500--Internal Server Error
>From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
>10.5.1 500 Internal Server Error
>The server encountered an unexpected condition which prevented it from
>fulfilling
>the request.
>
>==========================
>Console diagnostic:
>
>Tue Jun 05 17:40:14 MSD 2001:<I> <WebAppServletContext-dscat> looking
>for taglib
>uri /exttags.tld as resource /WEB-INF/e
>xttags.tld in Web Application root:
>Tue Jun 05 17:40:15 MSD 2001:<I> <WebAppServletContext-dscat> Generated
>java file:
>C:\weblogic\dscat\WEB-INF\_tmp_war_ds
>cat\jsp_servlet\_jsp\_opos\_catalog.java
>Tue Jun 05 17:40:25 MSD 2001:<E> <WebAppServletContext-dscat> Servlet
>failed with
>Exception
>java.lang.VerifyError: (class: jsp_servlet/_jsp/_opos/_catalog, method:
>_jspService
>signature: (Ljavax/servlet/http/Http
>ServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Register 12
>contains
>wrong type
> at java.lang.Class.newInstance0(Native Method)
> at java.lang.Class.newInstance(Unknown Source)
> at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:469)
> at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java,
>Compiled Code)
> at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:442)
> at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:228)
> at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:200)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:115)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:138)
> at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:915)
> at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:879)
> at weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:269)
> at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:365)
> at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:253)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java, Compiled
>Code)
>
>==========================
>Including JSP file:
>...
> <%@ include file="catalog_real.jsp" %>
>...
>
>==========================
>Included JSP file:
>...
> <%@ taglib uri="/exttags.tld" prefix="dscat" %>
>...
><dscat:pageheader>Catalog header</dscat:pageheader>
>...
>==========================
>Tag extansions library (WEB-INF/exttags.tld file):
>
><?xml version="1.0" encoding="ISO-8859-1" ?>
><!DOCTYPE taglib
> PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
> "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
>
><taglib>
> <tlibversion>1.0</tlibversion>
> <jspversion>1.1</jspversion>
> <shortname>dscat</shortname>
>
> <tag>
> <name>pageheader</name>
> <tagclass>ru.ibs.xbcat.view.tag.PageHeader</tagclass>
> </tag>
>
></taglib>
>==========================
>Class PageHeader:
>
>package ru.ibs.xbcat.view.tag;
>
>import java.io.*;
>import javax.servlet.jsp.*;
>import javax.servlet.jsp.tagext.*;
>
>public class PageHeader extends BodyTagSupport {
>
> public int doStartTag() throws javax.servlet.jsp.JspException {
> return BodyTag.EVAL_BODY_TAG;
> }
>
> public int doAfterBody() throws javax.servlet.jsp.JspException {
> ...
> return(SKIP_BODY);
> }
>}
>
-
How to upload a file into server using j2ee jsp and servlet with bean?
How to upload a file into server using j2ee jsp and servlet with bean? Please give me the reference or url about how to do that. If related to struts is more suitable.
Anyone help me please!u don't need j2ee and struts to do file uploading. An example is as such
in JSP. u use the <input> file tag like
<input type="file"....>You need a bean to capture the file contents like
class FileUploadObj {
private FormFile srcFile;
private byte[] fileContent;
// all the getter and setter methods
}Then in the servlet, you process the file for uploading
* The following loads the uploaded binary data into a byte Array.
FileUploadObj form = new FileUploadObj();
byte[] byteArr = null;
if (form.signFile != null) {
int filesize = form.srcFile.getFileSize();
byteArr = new byte[filesize];
ByteArrayInputStream bytein = new ByteArrayInputStream (form.srcFile.getFileData());
bytein.read(byteArr);
bytein.close();
form.setFileContent(byteArr);
// Write file content using Writer class into the destination file in the server.
... -
ADF Question: included jsp action firing after page load
Hi all,
I am using JDeveloper 10.1.3.3 and ADF + BC.
Here is another interesting situation for you. I have a page with an included jsp at the top with tabbed navigation.
My page is for entering an order. Users can have multiple orders "open" in other tabs at the same time. Users can also have many other non-order pages opened in tabs. We are using the same View Objects (Entity Based) along with Transient View Objects on each order.
Each order tab needs to "remember" the orderId so that when the user clicks on a tab, the appropriate rows are set in the order that is to be "opened". This occurs in a tab's action() - setting the orderId and forwarding to the appropriate page (if different) or reloading the same page with the new id.
On page load we try to get the tab's orderId and load that as the current row of all of our view objects. This should make it seem like they are all concurrently running.
The problem is when going from order to order, once the tab is clicked, the page's OnPageLoad method runs BEFORE the action of the tab click is processed. Therefore the order that loads thinks it is the previous order, and does not load the correct View Object rows.
Does anyone know how we can force the tab action to occur before the page load so that we can get the proper orderId?
Thanks,
HeatherThanks for your speedy reply Frank,
We are using the onPageLoad from the OnPageLoadBackingBeanBase which implements the PagePhaseListener.
In this we are doing something like:
if (isPostback()) {
String selectedTabNum =
EL.getAsString("#{TabCounter.currentSelectedTab}");
String test = EL.getAsString("#{TabCounter.tabOrderId" + selectedTabNum + "}");
System.out.println("tab num " + selectedTabNum);
System.out.println( "testing " + test );
}our tab counter (a session bean) has these two methods (among others):
public void setCurrentSelectedTab(int currentSelectedTab) {
this.currentSelectedTab = currentSelectedTab;
for(int i=1;i<= 20; i++) {
EL.set(BACKING_START+"selectedTab"+i+"}", false);
EL.set(BACKING_START+"selectedTab"+currentSelectedTab+"}", true);
public String getNextAvailableTab () {
for(int i=2;i<=20;i++) {
boolean isTab = (new Boolean (String.valueOf(EL.get(BACKING_START+"render"+i+"}")))).booleanValue();
if (!isTab) {
return String.valueOf(i);
return "0";
}our tab header (request bean) has this method as the action for clicking a tab:
System.out.println("handleTabNavigation");
String componentId = actionEvent.getComponent().getId();
String selectedTab = componentId.replaceFirst("tab","");
int selectedTabNum = new Integer(selectedTab).intValue();
EL.set("#{TabCounter.currentSelectedTab}", selectedTabNum);
String tabType = EL.getAsString("#{TabCounter.tabType"+selectedTabNum+"}");
if (tabType.equals("regular")) {
String orderId = EL.getAsString("#{TabCounter.tabOrderId"+selectedTabNum+"}");
EL.set("#{processScope.unfinishedHeaderId}", orderId);
} else if (tabType.equals("standing")) {
String orderId = EL.getAsString("#{TabCounter.tabOrderId"+selectedTabNum+"}");
}Thanks,
Heather -
Passing parameters to included JSP files using JSF
I have included JSP, which I use in many other JSP files. I want to display message in this included JSP which depends on the information in JSP files which include this JSP. How can I do this without using scriptlets?
Message was edited by:
cheltsovI have one included page in one jsp page(mother page). I have included it by jsp:include tag. The included page consists of two inputText. I need to pass the parameters of the mother page together with the parameters in the included page in the backingBean of the mother page. Hope this one is clearer.
The code snippet in the mother page looks like this
<jsp:include page="/pages/ps/sample_rep2.jsp"/>.
In the sample_rep2.jsp, I have two inputText. How can I pass this in the backingBean of the motherpage.
The sample_rep2.jsp is the included page here. The sample_rep2.jsp looks like this:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<af:panelBox>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<af:panelBox>
<af:inputText label="User ID" id="userid" value="CDOUGLAS"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://xmlns.oracle.com/adf/faces" prefix="af"%>
<af:panelBox>
<af:inputText label="User ID" id="userid" />
<af:inputText label="Age" id="age"/>
</af:panelBox> -
Precompiling a JSP that uses a bean
Hi,
I am facing a problem when I startup Weblogic with precompiling ON.
I have a JSP that uses a bean. When the JSP is being compiled, Weblogic is
actually trying to instantiate the bean and is executing code in the
constructor of the bean !
When I use the weblogic.jspc compiler to compile the JSP, no such thing
happens.
So this happens only when I precompile such a JSP when starting up Weblogic
server.
- Why does weblogic attempt to instantiat the bean ?
- Is there any way to tell weblogic "dont instantiate this bean now" ?
Also, the compiler is unable to find a class that is required by the bean. However, this class is there in the /applications/..../WEB-INF/lib in a JAR file. So why is the class not being found ?
Thanks,
Jay
Do a stack trace from the constructor to determine who is calling it, and
maybe why ...
Peace,
Cameron Purdy
Tangosol Inc.
<< Tangosol Server: How Weblogic applications are customized >>
<< Download now from http://www.tangosol.com/download.jsp >>
"Jayakumar Nandakumar" <[email protected]> wrote in message
news:3bb0f6d6$[email protected]..
> Hi,
> I am facing a problem when I startup Weblogic with precompiling ON.
>
> I have a JSP that uses a bean. When the JSP is being compiled, Weblogic is
> actually trying to instantiate the bean and is executing code in the
> constructor of the bean !
>
> When I use the weblogic.jspc compiler to compile the JSP, no such thing
> happens.
>
> So this happens only when I precompile such a JSP when starting up
Weblogic
> server.
>
> - Why does weblogic attempt to instantiat the bean ?
> - Is there any way to tell weblogic "dont instantiate this bean now" ?
>
> Also, the compiler is unable to find a class that is required by the bean.
However, this class is there in the /applications/..../WEB-INF/lib in a JAR
file. So why is the class not being found ?
>
> Thanks,
> Jay
-
Repeater fails using {container.item} context within included JSP pages
Greetings,
I'm using Bea Workshop 8.1.2 and netui's based framework.
I'm experiencing a problem relating to the use of jsp:insert tags as a way of templating the code as to make it more maintainable and cost effective.
The problem arises when using repeaters and then binding a <netui> tag with a "container.item" context inside the included jsp page.
Example:
On a PageController we define on its scope a rather simple data structure:
public String[] array={"Item1","Item2","Item3"}
The associated index is as follows:
index.jsp
<netui:html>
<netui-data:repeater dataSource="{pageFlow.array}">
<netui-data:repeaterHeader></netui-data:repeaterHeader>
<netui-data:repeaterItem>
<netui:label value="{container.item}"/><br>
</netui-data:repeaterItem>
<netui-data:repeaterFooter></netui-data:repeaterFooter>
</netui-data:repeater>
</netui:html>
This works as expected, it prints the data in the array list. Fine.
Now, with the <jsp:insert> tag usage, we get two files index.jsp and body.jsp:
index.html
<netui:html>
<netui-data:repeater dataSource="{pageFlow.array}">
<netui-data:repeaterHeader></netui-data:repeaterHeader>
<netui-data:repeaterItem>
<jsp:include page="body.jsp" flush="true"/>
</netui-data:repeaterItem>
<netui-data:repeaterFooter></netui-data:repeaterFooter>
</netui-data:repeater>
</netui:html>
body.jsp
<netui:html>
<netui:label value="{container.item}"/>
<netui:label value="{pageFlow.array[0]}"/>
</netui:html>
With this example the {container.item} tag fails with this exception:
"Caught exception when evaluating expression "{container.item}" with available binding contexts [actionForm, pageFlow, globalApp, request, session, appication, pageContext, bundle, container, url, pageInput]. Root cause: com.bea.wlw.netui.script.xscript.IllegalContextStateException: The Tag "com.bea.wlw.netui.tags.html.Label@cb5dce" does not have a valid parent of type DataAccessProvider. The expression "container["item"]" requires a parent of this type."
BUT - and here is my problem with this - the label tag with {pageFlow.array[0]} PRINTS THE DESIRED ELEMENT.
Also, on an extended example with a <form> tag around the main index html and the array structure inside a FormData class, {actionForm.array[0]} ALSO PRINTS THE DESIRED ELEMENT.
Only {container.item} gloriously fails with an exception complaining about IllegalContextStateException.
This is a total nonorthogonal behaviour, the features do not work as expected and indeed, with the importance of repeaters for netui's development, this preclude us from the minimum standard for structured web application design.
Does anyone have any clue about this behaviour? If not a fix, at least an explanation...
Thanks in advance.I am trying to insert multiple rows I when submited I am get ting only 1 row in the DatabaseForm.
my netui.log file shows this error:
29 Oct 2004 17:25:48,941 WARN NetUIReadVariableResolver []: Could not create a ContextFactory for type "com.bea.netuix.servlets.script.PortalVariableResolver$PortalContextFactory" because the ContextFactory implementation class could not be found.
29 Oct 2004 17:26:35,288 ERROR SortFilterColumn []: Unable to load /com/bea/wlw/netui/databinding/grid/filter/filter-window.properties. Using com.bea.wlw.netui.tags.databinding.grid.util.grid
Throwable: java.util.MissingResourceException: Can't find bundle for base name /com/bea/wlw/netui/databinding/grid/filter/filter-window.properties, locale en_US
Stack Trace:
java.util.MissingResourceException: Can't find bundle for base name /com/bea/wlw/netui/databinding/grid/filter/filter-window.properties, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:804)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:773)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:511)
at com.bea.wlw.netui.tags.databinding.grid.column.SortFilterColumn.<clinit>(SortFilterColumn.java:143)
at jsp_servlet._activitychange.__grid._jspService(grid.jsp:21)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:463) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at com.bea.wlw.netui.pageflow.PageFlowJspFilter.doFilter(PageFlowJspFilter.java:208) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:316)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.superForward(PageFlowRequestProcessor.java:1301)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor$DefaultHttpRedirector.forward(PageFlowRequestProcessor.java:1317)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.doForward(PageFlowRequestProcessor.java:1199)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.processForwardConfig(PageFlowRequestProcessor.java:1093)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
at com.bea.wlw.netui.pageflow.PageFlowRequestProcessor.process(PageFlowRequestProcessor.java:650)
at com.bea.wlw.netui.pageflow.AutoRegisterActionServlet.process(AutoRegisterActionServlet.java:527)
at com.bea.wlw.netui.pageflow.PageFlowActionServlet.process(PageFlowActionServlet.java:152)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6456)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
29 Oct 2004 17:27:31,164 WARN FlowController []: Could not find exception handler method exceptionHandler for java.lang.ArrayIndexOutOfBoundsException.
29 Oct 2004 17:27:31,165 WARN FlowController []: Could not find exception handler method exceptionHandler for java.lang.IndexOutOfBoundsException.
29 Oct 2004 17:27:31,165 WARN FlowController []: Could not find exception handler method exceptionHandler for java.lang.RuntimeException.
The actionForm uses a FormData which has a Array of all the fields that need to be populated.
Any idea why only 1 row shows up ?.
Thanks
Raghav -
this is a 2 part question.
1)at my company, jsp pages do a significan amount of server-side
processing while using regular class files for some additional
processing. my supervisor wants to remove as much as possible of the jsp
server-side code and place it in regular class files while having jsp
pages use those class files. bottom line, what would yield a higher
performance?
2)my company's intranet application architecture is JSP->EJB(session
only; entity is not used at all)->regular class files. EJBs act more
like a gateway between jsp and regular class files as they do not do any
processing. for example, if a jsp page makes a call to a class, say
Class1, it is routed through an EJB. now, if Class1 makes a call to
Class2, it is done directly without EJB involvement. however, once such
transaction terminates and the focus is returned back to a jsp, any
subsequent call to any class would result in a request being routed
through an EJB again. the question is what would happen if we completely
removed the EJB layer and just "hit" regular class files directly from
jsp pages? i now that it works fine since i have tried it on many
occasions. if such is the case, what is the point of using EJBs in this
scenario?
thank you for your help in advance!
Part 1. There are many reasons you might want to make your jsp code lighter
and imbed more functionality in class files. This would make the JSP files
easier to maintain, and allow you to have class files which contain logic
which is not specific to the presentation. (I.e. you could reuse the class
files much easier in multiple JSP files or other types of clients
(applications, RMI, etc). As for performance, I don't know if you are going
to see a dramatic change in performance by removing Java code from the jsp's
and moving it to the class files. However, you can implement some things
into your Java class files that you probably wouldn't want to do in jsp
files, such as connection pooling, singletons, etc that might give you
higher performance (if you were, for example, making database connections
straight from the jsp files). For simple iterators and such take a look at
JSP tags, they are the best model for breaking things out... jsp's don't
have Java, the beans don't have html- all the translation happens in the
tags. In the end though I think your biggest gain will be maintainability
and reusability of the code, not performance.
Part 2.
Depends on what you are doing with the class files. Take a look at what the
EJB architecture affords you--- things like Session State are reliably
stored in the case of a system crash. (You might want to not commit
something like an order to the database until the user has visited 3 jsp
form pages--- between the page visits store the form information in the
Session Bean to reliably keep the data). Most importantly, you can use
EJB's to easily take care of issues with transactions and synchronization.
So if you have a multi-user scenario and need transaction capabilities,
ejb's are going to really help. If you are already managing synchronization
issues in your plain java class files you might be ok--- if not you may have
problems when two people are accessing the class at the same time. Problems
with not synchronizing your plain class files might not manifest themselves
most of the time, but under load they are sure to crop up. By wrapping
every transaction into a session bean you can guarantee that methods called
on the class are done in a transactionally safe behavior, as well has have
more choices in terms of optimizing for speed / reliability.
You might find reading the Enterprise JavaBeans book from O'Reilly useful.
Also the following link has some lectures from JavaOne which are really
good:
http://java.sun.com/javaone/javaone00/replay.html
Listen to the EJB Architecture Design Strategies and Performance
Optimizations lecture, it has some good explanations of EJB architecture.
Josh Lannin
"mikhail perelman" <[email protected]> wrote in message
news:[email protected]...
> this is a 2 part question.
> 1)at my company, jsp pages do a significan amount of server-side
> processing while using regular class files for some additional
> processing. my supervisor wants to remove as much as possible of the jsp
> server-side code and place it in regular class files while having jsp
> pages use those class files. bottom line, what would yield a higher
> performance?
>
> 2)my company's intranet application architecture is JSP->EJB(session
> only; entity is not used at all)->regular class files. EJBs act more
> like a gateway between jsp and regular class files as they do not do any
> processing. for example, if a jsp page makes a call to a class, say
> Class1, it is routed through an EJB. now, if Class1 makes a call to
> Class2, it is done directly without EJB involvement. however, once such
> transaction terminates and the focus is returned back to a jsp, any
> subsequent call to any class would result in a request being routed
> through an EJB again. the question is what would happen if we completely
> removed the EJB layer and just "hit" regular class files directly from
> jsp pages? i now that it works fine since i have tried it on many
> occasions. if such is the case, what is the point of using EJBs in this
> scenario?
>
> thank you for your help in advance!
>
Maybe you are looking for
-
Report to show workbook, worksheets and owner
Hi, I need to be able to produce a report to show all of the workbooks stored on the db. I need to be able to list the owner, workbook name and the sheets. I have been looking at Eul_user_queries but there is way too much data there for what I need.
-
I am a loyal user of logic for 8 years now. yes I'm posting about an issue where logic crashes (as in: freezes for 30 seconds then closes even if other apps are reWired to it) It does this SOMETIMES, when resizing any window in logic.. it says: UNEFI
-
After several hours creating a PSD file in Photoshop CS5 I attempted to revert some changes and got this error "Could not complete your request because the file is not compatible with this version of Photoshop". I closed the file and restarted Photos
-
How to make change no mandatory for BOM creation and change? The required config should not impact any other objects except BOM Creation & Change.
-
Pre-configured RF Transactions
Hi, Could anyone provide me with the link to download pre-configured RF Transactions (Warehouse Management)? SS