Java中一个页面的超链接<a href="xxx.actionid=1">在xxxAction类中怎么获取这个传递的Id急

Java中一个页面的超链接<a href="xxx.actionid=1">在xxxAction类中怎么获取这个传递的Id急,第1张

1,如果你没用struts2框架的话,requestgetAttribute("id")

2,如果你使用了struts2框架的话,你只用在action中设置一个叫id的属性,并给它get,set方法(这里只会用到get方法)。struts2框架会自动赋值你的id属性,你直接使用就可以了。

对于如何把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中,一种是通过ActionContextgetContext()put("message",message);直接放入将数据request域中,不获取request本身,获取其中的Map;另一种是使用ServletActionContextgetRequest()setAttribute("message",message);直接取得request对象,再使用request对象的方法setAttribute()方法存入数据!将数据存入request中后,jsp中取值并无差别(同上)!

二、重定向到jsp:

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

*** 作流程:

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

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

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

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

三、总结:

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

1首先设置 表单中的数据的name值 如:<input type="text" name="username" value="">

2你用的是struts2,那么就在java类中写一个变量:变量名和页面上的name值一直 并有这个变量的get 和set方法 ,这样就能取到值了。

希望对你有帮助

所有的action要在strutsxml中注册,页面在请求action的时候会自动到 strutsxml中找相对应的action

你可以自己写个简单的增删查改的小例子,自己跑一下。如果自己不知道会到哪一步,可以设置上断点,顺着断点走。。。

希望能帮到你!

action当然写的是各种逻辑,逻辑的更直白的意思是我从DAO当中去数据了,如何组织各种数据,怎么使用各种数据,这些都放在action当中处理,比如我想知道某位同学的选课信息,那么我们需要知道,1同学的个人信息,2同学的课程信息,3同学的课程老师对应的信息,这是从三张表当中获取,对应三个DAO的model类,那么DAO就把三个类对应的信息展示给action,中间还有一个service负责取数据,至于jsp的数据怎么来,其实在我们可以使用doPOST方法我writer吧返回信息用json传过来,也可以使用servlet的内置对象request来获取前端传递来的参数,也可以使用response的setParamter来设置参数,action负责吧数据写到前端,acttion会从DAO层获取数据

action向jsp传值的方法有三种:

1用requestsetAttribute()方法,不过只适用于请求转发,不可用于重定向

2用sessionsetAttribute()方法

3用struts2标签,在Java类中定义这个值对象,然后赋值,并且给出setter和getter方法,在jsp页面中,使用

<s:property value=""/>来获取

jsp页面部分代码:

<s:form name="form1" method="post" action="glydenglu" namespace="/ssgl">

<select name="role" >

<option value="1">普通管理员</option>

<option value="2">系统管理员</option>

</select>

</s:form>

action类:

public class GlydengluAction extends ActionSupport {

private String role;

@Override

public String execute() throws Exception {

// TODO Auto-generated method stub

return superexecute();

}

public String denglu(){

>

在写了dao和biz的情况下,在action里调用获取另外一张表数据的方法,用一个list接收,将这个list作为属性写在action里,生成这个属性的get set方法,然后在页面里用<c:foreach>循环显示出来

以上就是关于Java中一个页面的超链接<a href="xxx.actionid=1"/>在xxxAction类中怎么获取这个传递的Id急全部的内容,包括:Java中一个页面的超链接<a href="xxx.actionid=1"/>在xxxAction类中怎么获取这个传递的Id急、怎么把action中的值传到jsp页面、怎么在java的action中获取form表单中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9749138.html

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

发表评论

登录后才能评论

评论列表(0条)

保存