2013-10-29 17 views
0

我要通過jQuery AJAX在Struts中2.提交表單我的Struts xml文件有什麼問題?

的struts.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 

<constant name="struts.devMode" value="true" /> 
<constant name="struts.ui.theme" value="simple" /> 
<package name="default" extends="struts-default"> 

    <action name="loginSubmit" 
     class="com.myproj.portal.controllers.PhysicianLoginController" 
     method="execute"> 
     <result name="success">/landing.jsp</result> 
     <result name="failure">/staff-login.jsp</result> 
    </action> 
    <action name="logout" 
     class="com.myproj.portal.controllers.PhysicianLoginController" 
     method="logout"> 
     <result name="success">/Welcome.htm</result> 
    </action> 
    <action name="demographics" 
     class="com.myproj.portal.controllers.DemographicsController" 
     method="execute"> 
     <interceptor-ref name="token" /> 
     <interceptor-ref name="basicStack" /> 

     <result name="success">/demographics.jsp</result> 
     <result name="failure">/demographics.jsp</result> 
     <result name="invalid.token">/demographics.jsp</result> 
    </action>  
</package> 

<package name="example" extends="struts-default,json-default"> 
    <action name="chngpass" class="com.myproj.portal.controllers.ChangePasswordController" 
    method="execute" > 
     <result name="success" type="json" /> 
    </action> 
</package> 
    </struts> 

我在lib文件夾中添加的JSON插件jar。但是這會產生以下錯誤

12:40:41,236 ERROR [DomHelper] The content of element type "package" must match "(result-types?,interceptors?,default-intercept 
org.xml.sax.SAXParseException: The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?, 
     at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 

它有什麼問題?

+0

我已經添加此包在另一個包下面。但是,添加後會產生錯誤。 –

+0

元素順序錯誤。 –

+0

通過更改Exception類型(併發布整個異常)來編輯您的問題,因爲該問題已解決。 –

回答

0

要得到json結果類型,您不需要定義以下

<result-types> 
    <result-type name="json" class="org.apache.struts2.json.JSONResult"/> 
</result-types> 

<interceptors> 
    <interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/> 
</interceptors> 

取消上述聲明。

其次,你的包裝聲明應該在struts元素中。所以最後,你應該有這樣的東西

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
<package name="example" namespace="/your_name_space" extends="struts-default,json-default"> 
    <action name="chngpass" class="com.myproj.portal.controllers.ChangePasswordController" 
    method="execute" > 
     <result name="success" type="json" /> 
    </action> 
</package> 
</struts> 
+0

14:02:34,169 INFO [STDOUT] 14:02:34,169 ERROR [Dispatcher]調度程序初始化失敗 無法加載配置。 - [unknown location] at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446) at org.apache .struts2.dispatcher.Dispatcher.init(Dispatcher.java:490) –

+0

@TuhinSubhraDey你可以發佈你的整個'struts'配置。 –

+0

我已經編輯我的帖子相應 –