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>