1. 程式人生 > >struts2的json-default和struts-default的區別

struts2的json-default和struts-default的區別

struts2的json plugin可以實現struts2和json的完美結合,由於本篇主要是介紹整合過程中遇到的問題,所以程式設計實現的方法這裡就不重複了,具體可以參看struts2的官方文件:http://struts.apache.org/2.2.1.1/docs/json-plugin.html

我在struts.xml中有如下action定義:

<action name="product_group" class="customers.products" method="getGroups">
<result type="json">
<param name
="root">groupList</param>
</result>
</action>

在上面的定義中,action的result的type為json,json plugin就可將action中定義為groupList的field自動轉換為json格式資料,並返回給前端UI。

但在deploy後,啟動tomcat時卻報了There is no result type defined for type 'json' mapped with name 'success'. Did you mean 'json'?的錯誤,因為struts2找不到json這個result type的定義。解決方法有下面兩種:

1.將當前package的extends屬性改為"json-default",即讓當前package從josn-default繼承而不是struts-default繼承;

2.但如果當前package確實無法繼承"json-default"的話,還可以在當前package中定義result-type,將json給加進去,如下:

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

兩種方法的原理:

json這個result type是在json-default  (struts2-json-plugin-2.1.8.1.jar\struts-plugin.xml)裡面定義的,內容如下(省去了xml和doctype標籤):

<struts>
<package name="json-default" extends="struts-default">
<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>
</package>
</struts>

可見,name為"json"的result type是在json-default中定義的,所以,從json-default繼承就可以使用json這個result。另外json-default還定義了一個name為"json"的interceptor。

另外,依json-default的定義來看,方法2中還應該再加一個json的interceptor定義才比較合適。

相關推薦

struts2 的json-defaultstruts-default區別

struts2的json plugin可以實現struts2和json的完美結合,由於本篇主要是介紹整合過程中遇到的問題,所以程式設計實現的方法這裡就不重複了,具體可以參看struts2的官方文件:http://struts.apache.org/2.2.1.1/docs

struts2的json-defaultstruts-default區別

struts2的json plugin可以實現struts2和json的完美結合,由於本篇主要是介紹整合過程中遇到的問題,所以程式設計實現的方法這裡就不重複了,具體可以參看struts2的官方文件:http://struts.apache.org/2.2.1.1/docs

sublime的setting-defaultsetting-user區別

  一直以來配置sublime的環境都是依靠網上教程,經常是讓我們在某個package下的setting-user裡面修改,直到今天我看到一個教程,讓我在setting-default裡面修改設定,一下子就激起了我的好奇心。 sublime包管理裡面settting-default和s

springmvcstruts區別

mvc jstl 比較 單例模式 方法 pri spring 線程 接收參數 springmvc是通過方法的形參接收參數,在使用時可以以單例方式使用,建議使用單例。 struts是通過成員變量接收參數,在使用時必須以多例方式使用。 註意:一般類中有成員變量,都是線程不安全

export ,export default import 區別 以及用法

彈出 但是 clas 能夠 引用 port 模塊 返回值 兩個 首先要知道export,import ,export default是什麽 ES6模塊主要有兩個功能:export和import export用於對外輸出本模塊(一個文件可以理解為一個模塊)變量的接口 imp

export default export 區別

能夠 imp 多個 pos export 加載模塊 body exp 加載 1.export與export default均可用於導出常量、函數、文件、模塊等 2.你可以在其它文件或模塊中通過import+(常量 | 函數 | 文件 | 模塊)名的方式,將其導入,以便能夠對

export,importexport default區別

模塊 post 註意 strong 情況 fun blog 指定 再看 首先要知道export,import ,export default是什麽 ES6模塊主要有兩個功能:export和importexport用於對外輸出本模塊(一個文件可以理解為一個模塊)變量的接口im

Es6新增的模組化exportexport default的主要區別

1.在一個檔案或模組中,export,import可以有多個,而export default只能有一個。 2.通過export匯出模組式,匯入此模組要加{},export default 則不需要。 詳細例子如下:  1、export  //demo

export, import export default區別

ES6的兩個功能: export 和 import export 對外輸出模組 import 引入(載入)進來一個模組 一、export => import 單個變數 export var name = "lishi" 在其他檔案裡引用 import {na

java許可權修飾符defaultprotected區別

java一共有4中許可權修飾符,分別是private、default、protected和public private和public很好理解,default和protected不太好分清。 protected 包內所有類可見,包外有繼承關係的子類可見 default表示

配置struts.xml時extends="struts-default"會報錯,原因解決

檢測語言世界語中文簡體中文繁體丹麥語烏克蘭語烏茲別克語烏爾都語亞美尼亞語伊博語俄語保加利亞語信德語修納語僧伽羅語克羅埃西亞語冰島語加利西亞語加泰羅尼亞語匈牙利語南非祖魯語卡納達語盧森堡語印地語印尼巽他語印尼爪哇語印尼語古吉拉特語吉爾吉斯語哈薩克語土耳其語塔吉克語塞爾維亞語塞索托語夏威夷語威爾士語孟加拉語

配置struts.xml時extends="struts-default"會報錯,原因解決

提示:此種解決方法只適用於Intellij IDEA,MyEclipse或者Eclipse還得另尋它法,但估計原因應該是類似的。 在Intellij IDEA 2017使用Struts2框架時,若新建專案時並未匯入Struts2框架而是在後期手動新建lib目錄匯入Struts2框架後,可

es6中模組化:exportexport default區別

一個頁面中export default只有一個。 demo1.js export str="111111" demo2.js import {str} from 'demo1.j

ES6:export default export 區別

export default 和 export 區別: 1.export與export default均可用於匯出常量、函式、檔案、模組等 2.你可以在其它檔案或模組中通過import+(常量 | 函式 | 檔案 | 模組)名的方式,將其匯入,以便能夠對其進行使用 3.在一個檔案或模組中,export、i

Vue中 export default export 區別

exp 普通 技術 port 關系 amd ring 大括號 沒有 1.export與export default均可用於導出常量、函數、文件、模塊等2.在一個文件或模塊中,export、import可以有多個,export default僅有一個3.通過export方式導

ES6 exportexport default區別

在ES6中export和export default均可用於匯出檔案、常量、模組、函式等,在匯入這些檔案時需要配合 import 使用。 在一個檔案中可以存在多個export,但只能存在一個export default: // export匯出用法: export fun

export ,export default import 區別以及用法

默認 函數 根據 pre 可用 返回 大括號 能夠 返回值 首先要知道export,import ,export default是什麽 ES6模塊主要有兩個功能:export和importexport用於對外輸出本模塊(一個文件可以理解為一個模塊)變量的接口import用

export、export default、import的區別

fault const name {} undefined 進行 ons port 只有一個 export、export default 均可用於導出常量.、函數、文件、模塊等; 在文件或模塊中通過import+(常量 | 函數 | 文件 | 模塊)名的方式,將其導入,以便

關於 vue中 export default new Vue({})

default mod 想要 發現 exp vue 無法加載 es6 gpo 對於剛開始學習vue的人(像我),一般都不會清楚的知道兩者之間該怎麽區分,甚至覺得兩者是一樣的。 那麽,經過我的查證,發現兩者之間是沒有任何聯系的。 export default ES6 Modu

遇到的問題----新建maven專案ArtifactTransferException Execution default-testResources of goal或者匯入maven報錯

第一種錯誤: ArtifactTransferException: Failure to transfer com.google.collections:google-collections:jar:1.0 from http://repo1.maven.org/maven2 was&nbs