struts入门问题,关于参数传递
struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" >
<form-property name="name" type="java.lang.String"/>
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" >
<forward name="success" path="/form/success.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
================
login.jsp
<%@ page language="java"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for loginForm form</title>
</head>
<body>
<html:form action="/login">
<html:submit>name : <html:text property="name"/></html:submit>
<html:errors property="name"/>
<html:cancel/>
</html:form>
</body>
</html>
======================
loginAction.java
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
request.setAttribute("name",loginForm);
return mapping.findForward("success");
}
===================
success.jsp
<%@ page language="java" import="java.util.*" %>
<%
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>
<base href="<%=basePath%>">
<title>My JSP 'success.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%=session.getAttribute("name")%> , You Logged in !
</body>
</html>
===================================
运行以后在login.jsp输入用户名,譬如说 aa ,应该forward到sucess.jsp 现实 aa,You Logged in !
但是实际显示的是 null,You Logged in !
就是说
<%=session.getAttribute("name")%> 取到的是 null
这是什么原因?
问题点数:50、回复次数:3Top
1 楼demon37(普来)回复于 2005-04-21 13:54:21 得分 25
request.setAttribute("name",loginForm);记录登录用户名
这样<%=request.getAttribute("name")%> , You Logged in !
Top
2 楼xu_xinyu(雪候鸟)回复于 2005-04-21 13:54:30 得分 25
request.setAttribute("name",loginForm);
你放到了request里面,却在session里面找,当然找不到了。Top
3 楼blackhost(剑心)回复于 2005-04-21 14:46:56 得分 0
驴唇不对马嘴就是指这种情况,呵呵Top




