常用結(jié)果類型
????chain????-????Action處理完成用戶請求之后,轉(zhuǎn)發(fā)到下一個Action繼續(xù)處理撼唾。
????redirectAction????-????重定向到一個Action
????dispatcher????-????默認(rèn)值蝌矛。轉(zhuǎn)發(fā)到j(luò)sp頁面
????redirect????-????重定向到j(luò)sp頁面
也就是說兩個用來請求jsp,兩個用來請求Action。
全局Result與局部Result:
????Result元素放在Action元素中梭域,就是局部result酥夭。
????Result元素放在global-results元素中赐纱,屬于全局result。
執(zhí)行順序:
????先到局部Result中查找對應(yīng)的結(jié)果熬北,如果找不到才會到全局Result中查找與邏輯視圖名稱對應(yīng)的結(jié)果疙描。
注意:
????1.盡量少用全局result,只有在多個Action都具有某個通用性質(zhì)的result時,才會考慮使用全局result讶隐。|
????2.不同的Result類型起胰,需要不同的參數(shù)。
動態(tài)結(jié)果
在前面的例子中我們就使用過動態(tài)調(diào)用Action中的某個方法巫延。在struts.xml中效五,想調(diào)用Action中的某個屬性值的時候,就可以使用動態(tài)結(jié)果炉峰,我們只是將以前的表達(dá)式{1}畏妖,中的1換成了屬性名。
例如:
public class UserAction extends ActionSupport {
private String name;
………
}
上面代碼中UserAction中有一個name屬性,并且實現(xiàn)了set和get方法疼阔。這樣在struts.xml文件中就可以獲取該屬性的值戒劫。代碼如下:
<package name="user" namespace="/" extends="struts-default">
<action name="UserAction" class="action.UserAction">
<result name="login_success">${name}.jsp</result>
</action>
</package>
使用${name}表達(dá)式就可以取出name屬性的值,實現(xiàn)動態(tài)結(jié)果(根據(jù)不同結(jié)果跳轉(zhuǎn)不同的頁面)竿开。