天天看点

JavaEE高级框架学习笔记(三)Struts输入标签完成注册页面0. 前言1.struts-html.tld2.功能实现——注册页面3.小结

0. 前言

习惯了利用html标签进行输入的开发者,是否回想过利用Struts框架的输入标签进行开发呢。不用担心,所有的Struts框架在浏览器端解码后都是我们熟悉的源码,但是使用框架,说到底也只是为了规范化,模块化,便于后期的修改、团队的分工合作和定位出错。因此Struts输入标签的便捷与灵活就使得其独具魅力。

1.struts-html.tld

tld就是taglib description的缩写,是标签库。struts-html.tld提供了许多替代html标签的写法,这种写法与struts框架相适应,因为可以通过配置文件直接和ActionForm、Action进行连接,省去了很多麻烦。

2.功能实现——注册页面

1.配置strust-config.xml

<action name="regForm" path="/reg" type="Action.RegAction"></action>
           
<form-bean name="regForm" type="Action.RegForm"></form-bean>
           

2.编写reg.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
	<html:form action="/reg" method="get">
	请输入您的账号(文本框):<html:text property="account"></html:text>
	<br>请您输入密码<html:password property="password"></html:password>
	<br>请您输入个人信息(多行文本框)
	<!--在Struts标签中,系统看到某个property,如果没有手动设置value,就会调用AcntionForm的getter方法来获取初始值 -->
	<br><html:textarea property="info" rows="5" cols="40"></html:textarea> 
	<br><html:submit value="提交注册信息"></html:submit>
	</html:form>
</body>
</html>
           

这里的"/reg"经过strust-config.xml的配置,系统会知道应该把表单提交到何处。

3.RegForm.java

package Action;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
 * 作用:
 *@author   欧世乐
 */
public class RegForm extends ActionForm{
	private String account;
	private String password;
	private String info;

	/**
	 * @return the info
	 */
	public String getInfo() {
		return info;
	}

	/**
	 * @param info the info to set
	 */
	public void setInfo(String info) {
		this.info = info;
	}

	/**
	 * @return the password
	 */
	public String getPassword() {
		return password;
	}

	/**
	 * @param password the password to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}

	/**
	 * @return the account
	 */
	public String getAccount() {
		return account;
	}

	/**
	 * @param account the account to set
	 */
	public void setAccount(String account) {
		this.account = account;
	}
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		
		return null;
	}
	
	
}

           

reg.jsp中每一个struts标签都需要在RegForm.java中有对应的属性、getter、setter方法。不然会报错,除非填写value属性,因为在Struts标签中,系统看到某个property,如果没有手动设置value,就会调用AcntionForm的getter方法来获取初始值。

4.RegAction.java

package Action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import Action.RegForm;

 
public class RegAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		RegForm regForm = (RegForm) form;// TODO Auto-generated method stub
		request.setAttribute("regForm", regForm);
		return new ActionForward("/regResult.jsp");
	}
	
}

           

注意继承Action接口,其中 request.setAttribute(“regForm”, regForm);不写也可以,Struts框架已经帮我们做了这一步,在结果页面直接request.getAttribute(“regForm”)就可以了。

5.regResult.jsp

<%@page import="Action.RegForm"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册信息</title>
</head>
<body>
	<%
		RegForm regForm=(RegForm)request.getAttribute("regForm");
	%>
	账号:<%=regForm.getAccount() %>
	密码:<%=regForm.getPassword() %>
	个人信息:<%=regForm.getInfo() %>
</body>
</html>
           

3.小结

Struts标签库为开发者提供的极大地便利,规范化的编写和程序之间低耦合的特性让其显得十分有魅力,它是后续其他优秀框架的借鉴。

JavaEE高级框架学习笔记(三)Struts输入标签完成注册页面0. 前言1.struts-html.tld2.功能实现——注册页面3.小结