首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Struts 1.x 系列教程(五):HTML 標籤庫核心標籤與完整實戰

     編輯:Java 相關知識

HTML 標籤庫是 Struts 1.x 中最常用的標籤庫,它將 HTML 表單元素與 Struts 控制層緊密綁定,極大簡化了視圖層開發。本文系統介紹核心標籤用法,並通過一個完整的用戶信息采集實例演示從頁面設計到後端處理的全流程。

一、HTML 標籤庫核心標籤詳解

1. <html:form> 標籤

對應 HTML <form>,用於提交用戶輸入。關鍵區別:action 屬性必須指向 struts-config.xml 中正確配置的 Struts 動作,否則拋出異常導致頁面無法運行。基本語法:

<html:form action="Struts動作" method="get/post">

2. <html:text> 標籤

最常用標籤,對應 <input type="text">。核心屬性 property 必須與 ActionForm 子類的屬性名完全一致,否則拋出異常。其他屬性(size 等)與原生 input 一致。

<html:text property="name"/>

3. <html:radio> 標籤

對應 <input type="radio">,用於枚舉類型選擇(如性別)。同一組 radio 的 property 必須相同,value 表示選中時提交的值:

男<html:radio property="sex" value="1" />
女<html:radio property="sex" value="2" />

4. <html:checkbox> 標籤

對應 <input type="checkbox">,單個勾選框。value 表示勾選時提交的值:

<html:checkbox property="student" value="true" />

5. <html:multibox> 標籤

同樣對應 checkbox,但映射機制不同:同一 property 的多個 multibox 會映射到 ActionForm 中的陣列類型屬性,而 checkbox 只對應單值。適合多選場景:

上網<html:multibox property="hobbies" value="上網" />
旅游<html:multibox property="hobbies" value="旅游" />
足球<html:multibox property="hobbies" value="足球" />
圍棋<html:multibox property="hobbies" value="圍棋" />

6. <html:select> & <html:option> 標籤

對應 HTML 下拉選單組合:

<html:select property="work">
  <html:option value="軟件工程師" />
  <html:option value="軟件測試工程師" />
  <html:option value="項目經理" />
  <html:option value="高級顧問" />
  <html:option value="其他" />
</html:select>

7. <html:submit> & <html:reset> 標籤

對應提交與重置按鈕,value 屬性定義按鈕顯示文本:

<html:submit value="提交"/>
<html:reset value="重置"/>

8. 其他標籤

更多標籤請參考官方文檔:Struts HTML Tag Library 官方指南

二、完整實戰演示:用戶信息采集系統

本實例包含四步:JSP 頁面構建、Struts 配置、ActionForm 實現、Action 處理。

【第1步】構建 JSP 頁面 (htmlTags.jsp)

<%@ page pageEncoding="GBK"%>
<%@ taglib uri="https://struts.apache.org/tags-html" prefix="html"%>
<html>
<head><title>HTML標籤庫演示</title></head>
<body>
<html:form action="htmlTags" method="post">
  姓名:<html:text property="name" /> <p />
  性別: 男 <html:radio property="sex" value="1" />
       女 <html:radio property="sex" value="2" /> <p />
  學生: <html:checkbox property="student" value="true" /> <p />
  愛好: 上網 <html:multibox property="hobbies" value="上網" />&nbsp;
       旅游 <html:multibox property="hobbies" value="旅游" />&nbsp;
       足球 <html:multibox property="hobbies" value="足球" />&nbsp;
       圍棋 <html:multibox property="hobbies" value="圍棋" /> <p />
  職業:
  <html:select property="work">
    <html:option value="" />
    <html:option value="軟件工程師" />
    <html:option value="軟件測試工程師" />
    <html:option value="項目經理" />
    <html:option value="高級顧問" />
    <html:option value="其他" />
  </html:select>
  <p />
  <html:submit value="提交"/>&nbsp;&nbsp;&nbsp;<html:reset value="重置"/>
</html:form>
</body>
</html>

【第2步】配置 struts-config.xml

<form-bean name="htmlTagsForm" type="actionform.HtmlTagsForm" />
<action name="htmlTagsForm" path="/htmlTags" scope="request" type="action.HtmlTagsAction" />

【第3步】實現 HtmlTagsForm (actionform/HtmlTagsForm.java)

package actionform;
import org.apache.struts.action.*;

public class HtmlTagsForm extends ActionForm {
  private String name;
  private String sex;
  private Boolean student;
  private String[] hobbies;  // 注意:multibox 對應陣列
  private String work;
  // getter/setter 省略...
}

【第4步】實現 HtmlTagsAction (action/HtmlTagsAction.java)

package action;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.io.*;
import actionform.HtmlTagsForm;

public class HtmlTagsAction extends Action {
  public ActionForward execute(ActionMapping mapping, ActionForm form,
      HttpServletRequest request, HttpServletResponse response) {
    HtmlTagsForm htForm = (HtmlTagsForm) form;
    try {
      response.setCharacterEncoding("GB2312");
      PrintWriter out = response.getWriter();
      out.println("姓名:" + htForm.getName() + "<p/>");
      if (htForm.getSex() != null)
        out.println("性別:" + (htForm.getSex().equals("1") ? "男" : "女") + "<p/>");
      out.println("學生:" + (htForm.getStudent() == null ? "否" : "是") + "<p/>");
      if (htForm.getHobbies() != null) {
        out.println("愛好:");
        for(String hobby: htForm.getHobbies())
          out.println(hobby + " ");
        out.println("<p/>");
      }
      if(htForm.getWork() != null)
        out.println("職業:" + htForm.getWork());
    } catch (Exception e) {}
    return null;
  }
}

運行測試

啟動 Tomcat,訪問 https://localhost:8080/samples/htmlTags.jsp,填寫表單提交後將顯示處理結果。圖1 為輸入界面,圖2 為提交後的輸出結果。

圖1:輸入界面

圖2:提交結果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved