首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预编译JSP页

预编译JSP页
EN

Stack Overflow用户
提问于 2013-06-10 21:04:00
回答 1查看 715关注 0票数 0

对不起,我的英语不好。

我正在尝试用ANT脚本预编译JSP文件。在此基础上,我从JSP生成了servlet:

代码语言:javascript
复制
    <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>

所以,现在我有了Servlet类,我想编译这些类。有些类已经成功编译,但有些却没有,许多未成功编译的页面都抛出了相同的错误,例如:

代码语言:javascript
复制
[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]                                                                          ^

在JSP agencyDelete.jsp中:

代码语言:javascript
复制
<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()});
%>

Ant编译脚本:

代码语言:javascript
复制
<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>

所以,请帮我找出问题所在。我认为问题出在:“<bean:define id="actionForm" name="AgencyForm" />”。为什么编译器看不到这个bean?

EN

回答 1

Stack Overflow用户

发布于 2013-06-10 21:42:20

在JSP Scriptlet中访问"actionForm“bean (页面范围变量)的正确方法是

代码语言:javascript
复制
<%
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17024568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档