struts2的action怎么获取jsp页面的表单值

struts2的action怎么获取jsp页面的表单值,第1张

举个例子你就好明白了。\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\明白过程了吗?如果不会还可以追问。

用strust2标签 ${对象名属性名}

例如你的 Reader reader, 哪就是${readername} ,${readerpass}这样就可以取到了

但前提你有 getReader(),setReader(),在reader类里面的属性 也有get和set

对于如何把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表达式获取即可!

<ul id="01"> <s:iterator value="menuForms" id="tMenuForm" > <s:if test="menuKbn == '01'"> <li><a id=""><s:property value="menuMei" /></a></li> </s:if> </s:iterator> </ul> <s:iterator遍历集合会把当前被遍历的元素放到栈顶里面去,所以用ognl表达式访问的时候不要加#,直接用户属性名访问

ActionContextgetContext()put(key,value);这个方法是以键值对的方式添加进去的

取出来直接根据key取:<%Object value = ActionContextgetContext()get(key)%>取得key对应的value

这个应该是Struts2里面的内容,那些封装成Map形式的 如session 、request等对象就是绑定到ActionContext对象上

希望对你有帮助

假设java文件中为 List对象 要求List中的对象必须被指明 也就是你的pojo对象能与查询出来的数据对应上

public class student{

private int age;

private string name;

// set ,get 省略

}

public class stuAction{

private List list;

//list 中保存的是student 对象

public String findStu(){

////查询对象集合 省略

return "success";

}

}

<s:iterator value="list">

<s:property value = "age"/>

<s:property value = "name"/>

</s:iterator>

你要了解 S:iterator 实际上也 打印出来是{Key = Value} 的形式 所以用类名去对应与直接名字去对应都是一样的 用名字去对应要求你的名字与Key的名字是一致的 类名的话有他自己的映射关系

用类名去映射的话就是

<s:iterator value="list" var="stu">

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

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

</s:iterator>

以上就是关于struts2的action怎么获取jsp页面的表单值全部的内容,包括:struts2的action怎么获取jsp页面的表单值、Struts2 jsp如何访问Action里的对象属性、怎么把action中的值传到jsp页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9640706.html

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

发表评论

登录后才能评论

评论列表(0条)

保存