位置:首頁 > Java技術 > Struts2教學 > Struts2 <s:textfield>文本示例

Struts2 <s:textfield>文本示例

為了比較直觀的學習,這裡創建一個web工程為:struts2textfield。整個工程的目錄結構如下:

在Struts2中,<s:textfield>文本範例, 例如,可以聲明“s:textfield”鍵屬性或標簽和名稱屬性。

<s:textfield key="username" />
// 或
<s:textfield label="Username" name="username" />
兩者都產生相同的HTML輸出(默認的XHTML主題)。類似如下的結果:
<td class="tdLabel">
  <label for="registerUser_username" class="label">Username:</label>
</td>
<td>
  <input type="text" name="username" value="" id="registerUser_username"/>
</td> 
在Struts2中,“name”將自動映射到JavaBean屬性。 在這種情況下,表格提交時,文本框的值使用“name=’username'”將調用對應動作的setUsername(String xx)來設置值。

Struts2 <s:textfield> 示例

在Struts2中創建一個文本框輸入字段示例教學。

1. 屬性文件

兩個屬性文件用來存儲信息。

global.properties

#Global messages
username = 用戶名
submit = 提交

RegisterAction.properties

#error message
username.required = 用戶名不可以為空

2. Action

使用一個簡單的動作類驗證以確保用戶名不為空,否則返回錯誤信息。

RegisterAction.java

package com.yiibai.user.action;

import com.opensymphony.xwork2.ActionSupport;

public class RegisterAction extends ActionSupport{

	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	//business logic
	public String execute() {

		return "SUCCESS";

	}

	//simple validation
	public void validate(){
		if("".equals(getUsername())){
			addFieldError("username", getText("username.required"));
		}
	}
}

3. 視圖文件

結果頁麵使用Struts2 “s:textfield”來創建一個HTML文本框輸入字段。

register.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>

<body>
<h1>Struts 2 - textbox 示例</h1>

<s:form action="registerUser" namespace="/user">

	<s:textfield key="username" />
	<s:submit key="submit" name="submit" />
	
</s:form>

</body>
</html>

welcome.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>

<body>
<h1>Struts 2 - textbox 示例</h1>

<h2><s:property value="username"/></h2>
or
<h2><s:property value="%{username}"/></h2> 

</body>
</html>

4. struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>

   <constant name="struts.custom.i18n.resources" value="global" />
   <constant name="struts.devMode" value="true" />
 	
   <package name="user" namespace="/user" extends="struts-default">
	<action name="register">
		<result>/pages/register.jsp</result>
	</action>
	<action name="registerUser" 
                class="com.yiibai.user.action.RegisterAction">
		<result name="SUCCESS">/pages/welcome.jsp</result>
		<result name="input">/pages/register.jsp</result>
	</action>
   </package>
	
</struts>

5. 示例顯示

http://localhost:8080/struts2textfield/user/register.action

Struts 2 textbox example
Struts 2 textbox example

參考

  1. Struts2文本文檔