來看看 使用 ActionForm 這個主題,當時使用了一個靜態表單網頁:
- form.htm
<html> 
<head><title>Login</title></head> 
 <body> 
   Please login:<p> 
    <form name="userForm" 
          action="/strutsapp/login.do" method="post"> 
   username <input type="text" name="username"/><br> 
   password <input type="password" name="password"/><p> 
        <input type="submit"/> 
    </form>
</body> 
</html> 
您可以將網頁改為JSP網頁,並使用Struts標籤來撰寫表單元件,例如:
- form.jsp
<%@ taglib uri="/tags/struts-bean" prefix="bean" %> 
<%@ taglib uri="/tags/struts-html" prefix="html" %> 
<%@page contentType="text/html; charset=Big5"%> 
<html> 
<head><title>Login</title></head> 
<body> 
   Please login:<p> 
   <html:form action="/strutsapp/login.do" 
              method="post" focus="username">
   username <html:text property="username" size="20"/><br>
   password <html:password property="password" size="20"/><p> 
        <html:submit/>
    </form>
</body> 
</html> 
<html:form>指定的login必須在struts-config.xml中有定義,<html:text>與< html:password>會取出Action所搭配的ActionForm物件 中對應的屬性值,如果使用者填寫的內容不正確而被送回表單頁面,使用者將可以看到先前所填寫的值,如果不想顯示先前所填寫的值,則將< html:text>與<html:password>的redisplay屬性設定為false即可,這幾個Struts標籤必須與 Action物件及ActionForm物件搭配使用。
<html:form>
用來產生HTML表單標籤,屬性name可以指定所使用的ActionForm名稱,如果沒有指定,則自動匹配ActionMapping中的name屬 性,必須與<html:submit/>、<html:reset/>等表單相關標籤使用,常用屬性介紹如下:- action: 表單提交的URL
- enctype: 提交表單時所使用的內容編碼,上傳檔案時設定
- multipart/form-data
- focus: 指定focus的元素名稱
- method: 表單提交的方式
- name: 使用的ActionForm名稱
- scope: ActionForm作用範圍
- type: ActionForm類型
- onreset: 表單被重置時呼叫的JavaScript
- onsubmit: 表單被送出時呼叫的JavaScript
<html:text>、<html:password>
文字方塊欄位與密碼欄位,搭配<html:form>使用,如果<html:form>所使用的ActionForm有值,預設 會顯示在對應的欄位,當用屬性如下:- property: 元素名稱
- size: 顯示的字數
- value: 元素初值
- redisplay: 是否顯示ActionForm的值(僅用於<html:password>)
<html:submit>、<html:reset>
表單的submit按鈕,搭配<html:form>使用,常用屬性如下:- property: 元素名稱
- value: 按鈕顯示文字
- onclick: 按下按鈕後呼叫的JavaScript
使用範例:
 <html:submit value="送出"/> 
<html:reset value="重清"/>
      
 
      <html:reset value="重清"/>
搭配 <bean:message> 標籤與訊息資源檔的寫法:
<html:submit property="method"> 
<bean:message key="button.save"/>
</html:submit>
<html:submit property="method">
<bean:message key="button.preview"/>
</html:submit>
      
<bean:message key="button.save"/>
</html:submit>
<html:submit property="method">
<bean:message key="button.preview"/>
</html:submit>

