ITEEDU

Struts Gossip: <html:form>、

<html:text>、<html:password>、<html:submit>

来看看 使用 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:submit>、<html:reset>

窗体的submit按钮,搭配<html:form>使用,常用属性如下:
  • property: 元素名称
  • value: 按钮显示文字
  • onclick: 按下按钮后呼叫的JavaScript

使用范例:
<html:submit 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>