Struts 1.3.8 学习笔记(五)

第五个版本,我们测试显示多种从Action传到页面的对象,包括String,Bean,Map,List<String>,List<Bean>等等

这里主要包括Action中存储和jsp中显示

LoginAction.java

package com.coderdream.action;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

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 com.coderdream.db.StudentDao;
import com.coderdream.db.UserDao;
import com.coderdream.form.LoginForm;
import com.coderdream.vo.StudentView;
import com.coderdream.vo.UserView;

public class LoginAction extends Action {

	/**
	 * 处理客户端请求
	 */
	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// 得到客户的的提交数据
		LoginForm lf = (LoginForm) form;
		UserDao userDao = new UserDao();
		String userName = lf.getUserName();
		String password = lf.getPassword();
		UserView userView = new UserView();
		userView.setUserName(userName);
		userView.setPassword(password);
		int result = userDao.queryUser(userName, password);
		// 业务调用
		if (1 <= result) {
			StudentDao studentDao = new StudentDao();
			List<StudentView> studentList = studentDao.quertAllStudent();

			request.setAttribute("studentList", studentList);
			request.setAttribute("userView", userView);
			request.setAttribute("userName", userName);

			// 存放String的Map
			Map<String, String> stringMap = new HashMap<String, String>();
			stringMap.put("Jan", "January");
			stringMap.put("Feb", "February");
			stringMap.put("Mar", "March");
			stringMap.put("Apr", "April");
			request.setAttribute("stringMap", stringMap);

			// 存放String和String数组的Map
			Map<String, String[]> stringMap2 = new HashMap<String, String[]>();
			String vegetables[] = { "pepper", "cucumber" };
			String fruits[] = { "apple", "orange", "banana", "cherry", "watermelon" };
			String flowers[] = { "chrysanthemum", "rose" };
			String trees[] = { "willow" };
			stringMap2.put("Vegetables", vegetables);
			stringMap2.put("Fruits", fruits);
			stringMap2.put("Flowers", flowers);
			stringMap2.put("Trees", trees);
			request.setAttribute("stringMap2", stringMap2);

			//
			Vector<String> animals = new Vector<String>();
			animals.addElement("Dog");
			animals.addElement("Cat");
			animals.addElement("Bird");
			animals.addElement("Chick");
			request.setAttribute("animals", animals);

			// 存放String的List
			List<String> stringList = new ArrayList<String>();
			stringList.add("abc");
			stringList.add("edf");
			stringList.add("ghi");
			stringList.add("jkl");
			request.setAttribute("stringList", stringList);

			// 用户名密码验证成功,跳转到成功页面
			return mapping.findForward("success");
		} else {
			// 用户名密码错误,跳转到失败页面
			return mapping.findForward("failing");
		}
	}

}

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录成功</title>
</head>
<body>
	用户登录成功!
	<br> 对象方式:
	<logic:present name="userView" scope="request">
		<bean:write name="userView" property="userName" />
	</logic:present>
	<br>
	<br> 属性方式:
	<bean:write name="userName" scope="request" />
	<hr>
	<logic:iterate id="element" indexId="ind" name="stringMap">
		<bean:write name="ind" />
		<bean:write name="element" property="key" />
		<bean:write name="element" property="value" />
		<br>
	</logic:iterate>
	<hr>
	<logic:iterate id="element" indexId="ind" name="stringMap2">
		<bean:write name="ind" />
		<bean:write name="element" property="key" />
		<br>
		<logic:iterate id="elementValue" name="element" property="value"
			length="3" offset="1">
			------<bean:write name="elementValue" />
			<br>
		</logic:iterate>
	</logic:iterate>
	<hr>
	<logic:iterate id="element" name="animals">
		<bean:write name="element" />
		<br>
	</logic:iterate>
	<hr>
	<logic:iterate id="element" indexId="index" name="animals" offset="1"
		length="2">
		<bean:write name="index" />.<bean:write name="element" />
		<br>
	</logic:iterate>
	<hr>
	<logic:iterate id="element" indexId="index" name="stringList">
		<bean:write name="index" />.<bean:write name="element" />
		<br>
	</logic:iterate>
	<hr>
	<logic:iterate id="studentView" indexId="index" name="studentList">
		<bean:write name="studentView" property="no" />.
		<bean:write name="studentView" property="name" />.
		<bean:write name="studentView" property="sex" />.
		<bean:write name="studentView" property="age" />.
		<bean:write name="studentView" property="dept" />
		<br>
	</logic:iterate>
</body>
</html:html>

代码说明

这里主要看一下List<Bean>的代码,很多书上都没有!

运行结果
Struts 1.3.8 学习笔记(五)
 

另外附上孙卫琴的第二章的Demo源代码。

相关推荐