本人是在现成的代码中加入一个方法,作为练习,不具备通用性。
1 首先登陆页面书写:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆页面</title>
</head>
<body>
<form action="<%=path%>/Class/class/practice.do" method="post" >
<table>
<tr>
<td>用户名:<input type="text" name="formMap.userName" id="userName"></td>
</tr>
<tr>
<td>密码::<input type="password" name="formMap.password" id="password"></td>
</tr>
<tr>
<td><input type="submit" value="登陆"> </td>
</tr>
</table>
</form>
</body>
</html>
id 是其标识号,name中则为其具体数据值。其中action地址为路径值+namespace命名空间+方法+.do
2 Struts.XML配置文件中书写:
<struts>
<package name="tbl_class" namespace="/Class/class" extends="struts-default">
<action name="practice" method="practice"
class="com.function.Class.action.ClassAction">
<result>/successs.jsp</result>
</action>
</package>
</struts>
其中name 和method尽量一致,避免混乱,name为你的请求action名字,method为你的action中的方法名字。
3 页面跳转action书写:
private IClassService classService;
public String practice(){
resultList = classService.check(formMap);
return SUCCESS;
}
SUCCESS为action中特使常量,表示页面正常,跳转到配置的页面中去
类似INPUT
4 service层书写:
List check(Map<String, String> formMap);
接口
5 serviceImpl书写:
public List check(Map<String,String> formMap){
String userName = formMap.get("userName");
String password = formMap.get("password");
List resultList = new ArrayList();
Map< String, String> map = new HashMap<String, String>();
map.put("userName", userName);
map.put("password", password);
resultList.add(map);
return resultList;
}
页面中输入的值传入到这里,然后再返回给到页面上去。
6 result的/successs.jsp页面书写(输出用户名)
<c:choose>
<c:when test="${not empty resultList }">
<c:forEach items="${resultList}" var="map" varStatus="status">
<tr>
<td>用户名:</td>
<td>${map.userName }</td>
</tr>
<tr>
<td>密码:</td>
<td>${map.password}</td>
</tr>
</c:forEach>
</c:when>
</c:choose>