如何使用struts2-core-2.1.6.jar使用的struts2应用程序将主题作为ajax应用于jsp表单?

如何使用struts2-core-2.1.6.jar使用的struts2应用程序将主题作为ajax应用于jsp表单?,ajax,jsp,struts2,Ajax,Jsp,Struts2,我正在尝试使用DWR将ajax实现到我的struts2应用程序中。 在配置DWR时,我需要将表单的主题设置为ajax。 我使用的是struts2-core2.1.6.jar,其中根本没有ajax主题,模板文件夹有css_xhtml、simple、xhtml和archive主题 我已经为DWR做了所有的配置,除了将主题作为表单的ajax。如果我将主题作为ajax添加到表单中,那么我将得到以下异常 HTTP Status 500 - type Exception report message

我正在尝试使用DWR将ajax实现到我的struts2应用程序中。 在配置DWR时,我需要将表单的主题设置为ajax。 我使用的是struts2-core2.1.6.jar,其中根本没有ajax主题,模板文件夹有css_xhtml、simple、xhtml和archive主题

我已经为DWR做了所有的配置,除了将主题作为表单的ajax。如果我将主题作为ajax添加到表单中,那么我将得到以下异常

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: org.apache.jasper.JasperException: Template /template/ajax/text.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate
Line: 489 - freemarker/template/Configuration.java:489:-1
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)

root cause

org.apache.jasper.JasperException: Template /template/ajax/text.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate
Line: 489 - freemarker/template/Configuration.java:489:-1
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
org.apache.jsp.contactus.contactus_jsp._jspService(contactus_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)

root cause

Template /template/ajax/text.ftl not found. - Class: freemarker.template.Configuration
File: Configuration.java
Method: getTemplate
Line: 489 - freemarker/template/Configuration.java:489:-1
org.apache.struts2.components.UIBean.end(UIBean.java:515)
org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
org.apache.jsp.contactus.contactcontent_jsp._jspx_meth_s_005ftextfield_005f0(contactcontent_jsp.java:421)
org.apache.jsp.contactus.contactcontent_jsp._jspx_meth_s_005fform_005f0(contactcontent_jsp.java:326)
org.apache.jsp.contactus.contactcontent_jsp._jspService(contactcontent_jsp.java:157)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
org.apache.jsp.contactus.contactus_jsp._jspService(contactus_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)

root cause

java.io.FileNotFoundException: Template /template/ajax/text.ftl not found.
freemarker.template.Configuration.getTemplate(Configuration.java:489)
freemarker.template.Configuration.getTemplate(Configuration.java:452)
org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:120)
org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
org.apache.struts2.components.UIBean.end(UIBean.java:513)
org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
org.apache.jsp.contactus.contactcontent_jsp._jspx_meth_s_005ftextfield_005f0(contactcontent_jsp.java:421)
org.apache.jsp.contactus.contactcontent_jsp._jspx_meth_s_005fform_005f0(contactcontent_jsp.java:326)
org.apache.jsp.contactus.contactcontent_jsp._jspService(contactcontent_jsp.java:157)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
org.apache.jsp.contactus.contactus_jsp._jspService(contactus_jsp.java:94)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:73)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
Apache Tomcat/6.0.26

如何解决这个问题?

您可以在struts中创建自己的主题。只需在正确的文件夹中添加/修改.ftl文件。对于netbeans项目,创建WEB-INF/classes/template/foo并将所需的模板放入其中


有关详细信息,请阅读《你可以在struts中创建自己的主题》的最后一部分。只需在正确的文件夹中添加/修改.ftl文件。对于netbeans项目,创建WEB-INF/classes/template/foo并将所需的模板放入其中


有关详细信息,请阅读

的最后一部分,正如您所说,ajax已从struts 2捆绑包中移出。如果您想使用它,您必须在WEB-INF/lib文件夹和jsp中包含“struts2-dojo-plugin-2.2.1.1.jar”标记

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<sx:head/>

正如您所说,ajax已从struts 2捆绑包中移出。如果您想使用它,您必须在WEB-INF/lib文件夹和jsp中包含“struts2-dojo-plugin-2.2.1.1.jar”标记

<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<sx:head/>