2013-06-10 1 views
0

Désolé pour mon anglais. J'essaye de précompiler les fichiers JSP avec le script ANT. Avec cela, je généré servlets de JSP: Précompilation de pages JSP

<taskdef classname="org.apache.jasper.JspC" name="jasper2"> 
     <classpath id="jspc.classpath"> 
      <pathelement location="C:\j2sdk1.4.2_12\lib\org.apache.jasper.jar" /> 
      <path refid="jbossweb.classpath"/> 
     </classpath> 
    </taskdef> 

    <jasper2 validateXml="false" uriroot="${webapp.path}" package="org.fista.zg.ui.struts.pages" 
     webXmlFragment="c:/generated_web.xml" outputDir="${webapp.path}/WEB-INF/src" /> 
</target> 

Alors, maintenant, j'ai des classes Servlet, et je veux compiler ces classes. Certaines classes ont été compilées avec succès, mais d'autres non, un grand nombre de pages sans succès compilé jetés même erreur, par exemple:

[javac] C:\Documents and Settings\Administrator\workspace\web-admin\WebContent\WEB-INF\src\agencyDelete_jsp.java:79: cannot resolve symbol 
[javac] symbol : variable actionForm 
[javac] location: class org.fista.zg.ui.struts.pages.agencyDelete_jsp 
[javac]   new Object[] {((AgencyInputForm)((DefaultInputActionForm)actionForm).getFormBean()).getContractNr()}); 
[javac]                  ^

Dans JSP agencyDelete.jsp:

<bean:define id="actionForm" name="AgencyForm" /> 
<% 
String message = WebCtrlFactory.getCtrl(request).getLocalizationString("org.fista.zg.ui.struts.agency.remove", 
new Object[] {((AgencyInputForm) ((DefaultInputActionForm)actionForm).getFormBean()).getContractNr()}); 
%> 

script Ant de compilation:

<javac destdir="${webapp.path}/WEB-INF/classes" optimize="off" debug="on" 
      failonerror="false" srcdir="${webapp.path}/WEB-INF/src" excludes="**/*.smap" classpath="C:\Documents and Settings\Administrator\workspace\web-admin\build\classes"> 
<classpath> 
<fileset dir="${webapp.path}/WEB-INF/lib"> 
<include name="*.jar" /> 
</fileset> 
<path refid="jbossweb.classpath"/> 
</classpath> 
<include name="**" /> 
<exclude name="tags/**" /> 
<exclude name="tiles/**" /> 
</javac> 

Alors, s'il vous plaît, aidez-moi à trouver le problème. Je pense que le problème est dans: "<bean:define id="actionForm" name="AgencyForm" />". Pourquoi le compilateur ne peut pas voir ce bean?

+0

Pourquoi vous essayez d'accéder à la fève de forme d'un scriptlet de toute façon? –

+0

Scriptlets! Courir avant qu'ils ne vous attrapent ... Désolé, vous avez juste été attrapé. –

+0

Avez-vous essayé de le compiler sans JSP? –

Répondre

0

façon correcte d'accéder haricot « ActionForm » (page variable portée) à l'intérieur JSP Scriptlet est

<% 
String message = WebCtrlFactory.getCtrl(request).getLocalizationString("org.fista.zg.ui.struts.agency.remove", 
new Object[] {((AgencyInputForm) ((DefaultInputActionForm)pageContext.getAttribute("actionForm",PageContext.PAGE_SCOPE)).getFormBean()).getContractNr()}); 
%> 
+0

cela n'aide pas :( – user2470330

+0

obtenez-vous la même erreur lorsque vous suivez ma suggestion ou quelque chose de différent? – harrybvp