struts.xml
- <package name="demo" extends="struts-default" namespace="/demo">
分package的作用就是為了用namespace,表示這個action屬于那個空間下面。
- <result type="redirect-action">list</result>
redirect-action 的type,后面可以跟action名,不必要寫路徑
- <result type="redirect">/demo/list.action</result>
redirect的type,后面必須跟路徑
- <result>/demo/list.action</result>
沒有type會出錯,因為它會去找文件,而不是找URL
- <s:form name="userForm" action="save" method="post" validate="true">
<s:hidden name="user.id" value="%{user.id}" />
<s:textfield label="Name" name="user.name" value="%{user.name}" required="true" />
<s:submit method="save" value="Save" />
</s:form>
"%{user.name}" 綁定到Action里的user屬性的name屬性。
submit提交到save action。
submit最終調用action類的save方法。
- <s:url id="removeUrl" action="delete">
<s:param name="id" value="%{id}" />
</s:url>
%{id}能夠從當前上下文內的id屬性綁定過來。
能夠把value="%{id}" 綁定到action的name="id" 的id屬性上,不需要request.getParameter("id")。
- <s:url id="removeUrl" action="delete">
<s:param name="id" value="%{id}" />
</s:url>
<s:a href="%{removeUrl}">Delete</s:a>
"%{removeUrl}"能把當前上下文定義的url拿過來。
替換的做法是
<a href="<s:url action="delete"><s:param name="id" value="%{id}" /></s:url>">Delete</a>