导航:首页 > 编程语言 > struts2jsp跳转action

struts2jsp跳转action

发布时间:2023-03-01 03:18:35

① struts2怎样从jsp页面传值到action中

jsp页面跟通常的html传值一样 通常有两种方式

1.form表单传值

2.url方式传值

通常后台接受前端传值 都是用的request.getParameter("username")

但是在struts框架下 可以用set方法让action自动接收 也更方便

所以 action接收值也有两种方式

1.request.getParameter("username")

2.set



下面记录多种组合方式,大家可以根据相应的情况选择使用:

方式一 jsp中form传值username,password, action中set方法接收

[java]view plain

<%@taglibprefix="s"uri="/struts-tags"%>

[java]view plain

<formaction="getIp/login"method="post"name="form1">

用户名:

<s:textfieldname="username"/>

<br/>

密码

<s:passwordname="password"/>

<br/>

<s:submitvalue="提交"/>

</form>





login.jsp

[java]view plain

<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+"://"

+request.getServerName()+":"+request.getServerPort()

+path+"/";

%>

<%@taglibprefix="s"uri="/struts-tags"%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>loginpage</title>

</head>

<body>

<formaction="getIp/login"method="post"name="form1">

用户名:

<s:textfieldname="username"/>

<br/>

密码:

<s:passwordname="password"/>

<br/>

<s:submitvalue="提交"/>

</form>

</body>

</html>


loginAction.java


[java]view plain

packageaction;

importcom.opensymphony.xwork2.ActionSupport;

{

/**

*登录

*/

=-6797327769546503535L;

privateStringusername;

privateStringpassword;

publicStringgetUsername(){

returnusername;

}

publicvoidsetUsername(Stringusername){

this.username=username;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringexecute(){

System.out.println("username:"+username);

System.out.println("password:"+password);

returnSUCCESS;

}

}



spring文件
action.xml

[java]view plain

<?xmlversion="1.0"encoding="utf-8"?>

<struts>

<packagename="getIp"extends="json-default"namespace="/getIp">

<!--<actionname="testJson"class="testAction">

<resulttype="json"></result>

</action>

<actionname="testJsp"class="testAction">

<resultname="success">/index.jsp</result>

</action>-->

<actionname="login"class="login">

<resulttype="json"></result>

</action>

</package>

</struts>

② jsp页面怎么跳转到action方法中

1、如果想在action中获得值,就必须先从jsp跳转到action,然后action返回的时候被struts拦截,匹配result时,就可以控制跳转到另外一个jsp,这当中的过程看起来很长,但是对于计算机来说是非常短暂的,是经过action才跳转到第二个jsp。
2、还有一种方式是用 ajax 将要传递给action的数据以url+ 参数 + 参数值 的方式(即get方式)传递给后台action,但是这个action不能匹配struts当中的result,否则会报错,最好是定义void方法来获得页面数据,request取值,response响应

③ struts2在jsp页面上怎么访问action

如果你要引用action执行后的页面,就用s:action 加上executeResult="true"这个属性就可以了 <s:action id="这可以不要,id是jsp直接引用action里用的" name="action名" executeResult="true"> <s:param name="" value=""/>这是action的参数 </s:action>

④ 基于struts2的JSP页面执行action跳转新的jsp页面之后,新的jsp页面如何自动显示出执行action后的内容

不是太理解你的意思,
信息可以存在session中,在jsp页面里读出来
action:
public String list() {
try {
List<Voter> list = service.getAll();
ActionContext.getContext().getSession().put("voterList", list);
return "list";
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
}
list.jsp:
<c:forEach var="voter" items="${voterList }" varStatus="st">
<tr>
<td>${voter.userId }</td>
<td>${voter.userName }</td>
</tr>
</c:forEach>
struts.xml:
<action name="user_*" class="wangli.action.UserAction" method="{1}">
<result name="login">login.jsp</result>
<result name="loginSuccess" type="redirectAction">user_list</result>
<result name="list">/WEB-INF/list.jsp</result>
<result name="registerSuccess">registerSuccess.jsp</result>
</action>

⑤ 在Struts2中,怎么由jsp跳转到action中

哥们,你的理解有很大问题呀
不 jsp 跳到 action 取值
而是你应该访问action 然后返回你的jsp才能有值。

帮你梳理一下,什么是访问吧,呵呵

首先,浏览器访问一个地址,被你的servlet 获取,至于是不是访问jsp 还是访问action这个一般看你配置文件怎么配了,当然不会有人将action的标志写为 “jsp”,一般写.action 或者.do

那么如果你的拦截器也没有拦截jsp的话,(不明白拦截器可以忽略本段),会根据你的后缀名判断你要访问什么。

其实不管你访问什么,都可以认为最后通过 response 返回了一个字符串,返回文件不算。

那么这个字符串的构成不外乎有几种
1,全部静态,一般是 html,即直接指向一个静态页面,当然也可以通过actiong 转向一个html
2,全部动态,由java拼接一个字符串,返回,ajax请求一般是这种情况。当然,若全天是一个submit式提交,希望返回一个页面,那么你的字符串将被当作html代码展示。
3,半动态,也就是jsp方式,jsp中的html部分是静态不动的,其他jsp标签,如你写的s标签(s标签是strut的标签,说白了是jsp标签的一种),jsp标签会根据他的定义执行对应的java代码进行拼装。然后将拼装好的部分与原来的html部分结合,返回给浏览器。

无论是哪种,浏览器拿到的都是 静态的,也就是浏览器并不知道你后台做了什么,只是拿到一个已经拼装好了的html,(这个html原来可能就不需要拼装对应第一种,全部都是拼装的对应第二种,一半是拼装的对应第三种)

但是你直接访问jsp的问题是,当前sesson中没有你写的pages.pageList,所以啥也没有。

所以要在页面上显示列表有2种方案,这两种方案都很常见。
1,访问一个action,action先通过java取得值,将值付给某些变量,对你的来说就是pages.pageList,再将请求重定向到你的jsp,那么jsp中s标签就被拼装成你要值返回了前台。
页面上就有 表格了。
2,访问一个jsp,而这个jsp中没有你现在写的s标签,但是当jsp全部加载完成后,通过ajax向后台申请数据,再通过js(javascript)修改你前台的页面,展示出你要的结果,

随着这些年的发展,第二种方案越来越流行,其实怎么用还是要看自己。

阅读全文

与struts2jsp跳转action相关的资料

热点内容
金蝶kis支持win10吗 浏览:113
常州采集物联网大数据平台有哪些 浏览:950
win10休眠文件改到d盘 浏览:626
如何编程手机app软件 浏览:656
node获取文件名 浏览:367
iphoneios7怎么设置铃声 浏览:52
手机qq激活星钻 浏览:302
html中引入js文件路径 浏览:83
0基础自学编程可以看什么书 浏览:860
javapoi导出excel 浏览:212
迷你编程迷小酷为什么邮箱里没有 浏览:33
ipadqq接收的文件在哪里 浏览:15
拼多多初级看哪些数据 浏览:848
win10开机密码屏幕键盘 浏览:162
文件夹乐高 浏览:914
外置文件夹挂载 浏览:304
人人视频本地缓存文件 浏览:194
java俄罗斯方块项目描述 浏览:354
win10系统被冻结 浏览:460
excel文件批量合并 浏览:948

友情链接