jsp中用struts标签 获得session的值

jsp中用struts标签 获得session的值,第1张

struts 1 版本:

<bean:write name="Teacher" property="name"/>

<bean:write name="Teacher" property="age"/>

struts 2 版本:

<s:property value="#sessionTeachername"/> // 最近在用 struts1 做项目,这个一般一试都试的出来的,value 里是表达式。

<s:property value="#sessionTeacherage"/>

通用表达式:// 这个我一般是 request 传出页面,都能接的这个,session 你可以试一下,上面的标签是绝对可以的。

${Teachername} //输出姓名

${Teacherage} //输出年龄

如果有什么不明白可以Hi 我,我在线。

建议使用struts2,在jsp页面用struts标签就可以直接获取action的值了;比如action有username,password,那么在jsp页面获取就是:

用户名:<s:property value="username">

密码:<s:property value="password">

如果你要传递一个List<User>对象users

<s:iterator id="user" value="users">

      <tr>

        <td ><s:property value="#userusername"/></td>

        <td><s:property value="#userpassword" /></td>

     </tr>

</s:iterator>

简单方法:把main方法里的内容全部复制到html页面的标签中,用把代码扩起来,把Systemoutprintln();方法的System关键字去掉,最后在html页面顶部加上:,import里面是你要添加的包路径,用逗号分隔,把你这个类的最顶部的import后面的每条内容都复制到html页面的import中就可以了,注意用逗号分隔啊。

对于如何把struts2的action中的值传到jsp页面中,主要的方法有2种:

使用转发视图利用request域中储存所需的值

使用重定向时存储数据进入session使其在jsp中可以获得

下面,让我们分先后的讲解这2种方法!

一、转发到jsp:

准备步骤:

jsp页面随时准备使用el表达式获取request中的值,

action中的值分2种,一种是在方法中诞生的,作用域也是方法内;一种是定义为类成员(并带有get,set或者为public),此种方式只需赋值。

2 *** 作流程:

对于action的类属性,直接为其赋值(例如 message="Test";),然后在jsp页面中使用el表达式取出这个值(${message },直接以类属性名称取值即可,el默认的取值域就是request,struts2会将action的所有带有get,set(这两个方法必须同时有)的属性自动的放入request域中当然你也可以使用struts的标签库,不推荐)

对于action中方法中产生的数据,又不想为其在action类中定义对应的成员,我们可以手动的将其存放进入request域中,在struts2中,有2种方式可以将数据存入request中。

(1)一种是通过ActionContextgetContext()put("message",message);直接放入将数据request域中,不获取request本身,获取其

中的Map;

(2)另一种是使用ServletActionContextgetRequest()setAttribute("message",message);直接取得request对象,再使用

request对象的方法setAttribute()方法存入数据!将数据存入request中后,jsp中取值并无差别(同上)!

二、重定向到jsp:

准备步骤:同上!不同处是不管要存入的数据是不是类的属性,我们都必须在方法中进行处理才能将数据存入session,而不能依靠struts2自动帮我们搞定!

*** 作流程:

不管数据是哪里诞生的,得到数据后!比如为message;同上的第二种情况:也有2中方式将数据存入到session中:

(1)在方法中通过ActionContext()getContext()getSession()put("message",message);首先获取session中的map,再使用Map接口的方法put()存入数据

(2)在方法中通过ServletActionContext()getRequest()getSession()setAttribute("message",message);首先获取session对象,再使用session对象的setAttribute方法将数据存入session域。

最后,不管那种方式将数据存入到session中,我们都可在jsp页面中获取session中的值,例如${sessionScopemessage }

三、总结:

不论如何,总是将数据存入tomcat提供的几个存数据的域中(request,session,application),然后在页面通过EL表达式获取即可!

举个例子你就好明白了。\x0d\例如,首先,你写了一个ExampleBean里面有属性userName和password都是String类型,然后别忘了写他们的setter和getter方法,publicvoidsetUserName(StringuserName)等等。\x0d\然后,写Action,在Action类中加入成员变量privateStringuName;privateStringuPwd;\x0d\一定要再写上他们的Setter和Getter方法。publicvoidsetUName(Strings)等等。\x0d\然后你在execute方法中创建一个bean对象。如:\x0d\ExampleBeanb=newExampleBean(thisgetUName(),thisgetUPwd());\x0d\就可以创建这个bean对象了。\x0d\\x0d\具体传值流程是:首先你访问jsp页面,然后比如jsp页面上有一个登录框,你可以输入用户密码。\x0d\\x0d\\x0d\\x0d\\x0d\\x0d\这里注意的是标签中name属性对应的就是Action里面的值name叫uName,提交表单后在Action里就会自动调用setUName("你输入的值");然后就执行execute方法,你就可以创建bean了。\x0d\明白过程了吗?如果不会还可以追问。

在jsp上内置就有session对象,可以直接用。

例如:<%=sessiongetAttribute("hello") %>

非要通过struts2的话,就用

>

以上就是关于jsp中用struts标签 获得session的值全部的内容,包括:jsp中用struts标签 获得session的值、struts1如何在jsp页面取出从action中传过来的数据、在jsp 页面中,用嵌套Java代码的方式<%%>怎么取出struts2值栈中的对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9680975.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存