String userid = (String) session.getAttribute("userid");
out.print("userid="+userid);
出错了,是这样才对
String userid = (String) session.getAttribute("username");
out.prinln("userid="+userid);
out.print("userid="+userid);
出错了,是这样才对
String userid = (String) session.getAttribute("username");
out.prinln("userid="+userid);
解决方案 »
- weblogic问题,求助。。。
- 在网上找了个下载类不知道调用这个方法怎么传参数,各位高手帮帮忙 谢谢
- 在java中怎样用一个事件来运行一个应用程序?请高手解决
- 请问谁有Myeclipse for linux软件下载啊
- 当当网,淘宝网
- 一个关于方法的问题
- Tomcat 5.5 部署网站失败
- 标签库访问出错Element type "tlib-version" must be declared
- displaytag数字排序问题
- 我下载了JBOSS3,在WINDOWS环境中解压,然后直接启动,但不能正常启动?WHY
- lookup的问题,看了很多帖子,还是不能解决,初学者,郁闷中
- jbuild 疯了!!!
String username = (String) session.getAttribute("username");
out.print("username="+username);
可是取出来的却是null ?!
我把struts的配置文件struts_config.xml里面配置那个Action对应的forward的jsp该为指向tree.jsp,再执行时就可以输出来。难道Action里定义的session,只能再其forward指定的jsp里面用吗?
我在2003-8-26新版的JSPStudio(下载地址:ftp://210.36.70.51)上试了你的问题,如下做法没有问题:
//HttpSession session = request.getSession();这行不要用
session.setAttribute("username", username);mainframe.jsp中用(通过forward转发)
<%
String userid = (String) session.getAttribute("username");
out.print(userid);
%>
没问题。
tree.jsp中用(没有forward转发,另行开发的文件)<%
String userid = (String) session.getAttribute("username");
out.print(userid);
%>
也没问题。你不用下面这行再试一下:
//HttpSession session = request.getSession();这行不要用如还有问题,请下载JSPStruts试一下。
to:kui(kui)
你的方法是肯定错误的,在action里面如果不声明HttpSession,哪里来session句柄作操作,你是jsp页面做的试验吧,只有jsp才把session做为内置对象的
你是不是自己定义了一个request?还是把perform方法改成:public ActionForward perform(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response),如果是这样的话就不会错呀!如果是自己定义的就有问题了,因为request.getSession()是获取现有的session,如果没有就建一个新的,会不会是这个情况?
lykAction.java:package org.apache.struts.webapp.example;import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.ModuleException;
import org.apache.struts.util.MessageResources;public final class lykAction extends Action
{
// 变量定义:
private Log log = LogFactory.getLog("org.apache.struts.webapp.Example"); //函数定义:
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// Extract attributes and parameters we will need
Locale locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
lykForm myform = (lykForm) form;
String variable1= myform.getMybeanvariable1();
try
{
session.setAttribute("username", variable1); if(variable1.trim().equals(""))
{
return new ActionForward(mapping.getInput());
}
//其它代码
return (mapping.findForward("success"));
}
catch (Exception e)
{
//log.error("出错", e);
//log.trace("出错");
throw new RuntimeException(e.getMessage());
}
}
}lykForm.java:package org.apache.struts.webapp.example;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;public final class lykForm extends ActionForm
{
private String mybeanvariable1; //myfiledata; public String getMybeanvariable1()
{
return (this.mybeanvariable1);
} public void setMybeanvariable1(String mybeanvariable1)
{
this.mybeanvariable1=mybeanvariable1;
}}
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>lyk.jsp:
<html:html>
<head>
<title></title>
<html:base/>
</head>
<body bgcolor="white">
<html:form action="/lykAction.do" method="post">
<html:text property="mybeanvariable1" />
<html:submit value="提交" />
<html:reset value="重写" />
</html:form>
</body>
</html:html><%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
lykout.jsp
<html:html >
<head>
<title>
</title>
<META http-equiv=Content-Type content="text/html; charset=GB18030">
<META content="MSHTML 6.00.3790.0" name=GENERATOR>
</head>
<body bgColor=white>
<html:base/> <html:base/>
<bean:write
property="mybeanvariable1" name="lykForm" />
<%
String userid = (String) session.getAttribute("username");
out.print(userid);
%>
</body>
</html:html >
lykout2.jsp
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><html:html >
<head>
<title>
</title>
<META http-equiv=Content-Type content="text/html; charset=GB18030">
<META content="MSHTML 6.00.3790.0" name=GENERATOR>
</head>
<body bgColor=white>
<html:base/> <html:base/> <bean:write
property="mybeanvariable1" name="lyk1Form" />
<%
String userid = (String) session.getAttribute("username");
out.print(userid);
%>
</body>
</html:html >
xml:<form-bean name="lykForm"
type="org.apache.struts.webapp.example.lykForm" />--------------------------------------------------------------------------------
<action path="/lykAction"
type="org.apache.struts.webapp.example.lykAction"
name="lykForm"
scope="session"
input="/lyk.jsp">
<forward name="success" path="/lykOut.jsp" /></action>
上述改一下,去掉“<bean:write
property="mybeanvariable1" name="lyk1Form" />
”:
lykout2.jsp
<%@ page contentType="text/html;charset=GB2312" language="java" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><html:html >
<head>
<title>
</title>
<META http-equiv=Content-Type content="text/html; charset=GB18030">
<META content="MSHTML 6.00.3790.0" name=GENERATOR>
</head>
<body bgColor=white>
<html:base/> <html:base/>
<%
String userid = (String) session.getAttribute("username");
out.print(userid);
%>
</body>
</html:html >我试了几个例子,都没问题。
你的例子我在项目中测试了,运行后lyk.jsp可以出来,lykout.jsp可以打印出来,但是在lykout2.jsp仍然打印不出来!