请问Struts2高手,Struts2的框架对于jsp取request有没有影响?
为什么在div中我能够取得到session的内容,而取不道request的内容?
画面的意图是这样的,我想在画面初始化的时候,调用action,然后在action中从数据库把邮政编码和地址的List对象取到,然后把这个对象传到javascript中去,同时画面输入的邮政编码也作为参数,这样在输入完邮政编码后,
地址就自动显示出来。想实现这样的功能,不过用request取不到值,用session我不知道如何保存值到javascript中去。login.jsp<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import= "java.util.* " %>
<%@ page import= "javax.servlet.http.HttpServletRequest" %>
<%@ page import= "org.apache.struts2.ServletActionContext" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="s" uri="/struts-tags" %><body>
<s:head theme="ajax"/>
<s:url id="url_panel1" action="Login/Init" /><div>
<s:div id="panel1"
label="login"
href="%{#url_panel1}"
theme="ajax"
/>
</div>
LoginChild.jsp<%@ page contentType="text/html; charset=UTF-8" import="java.util.*"%>
<%@ taglib uri="/struts-tags" prefix="s" %><div class="containerLogin">
<div class="loginArea">
<s:form action="Login/check" method="POST" validate="false">
<tr>
<td colspan="2">
<s:actionerror />
</td>
</tr> <s:textfield name="username"
label="username"
size="12"/>
<s:text name="${mysession}" />
<% request.getAttribute("myrequest");%>
<s:submit theme="ajax" key="OK" />
</s:form>
</div>
</div>
struts.xml:<action name="Login/*" class="hello.LoginAction" method="{1}">
<result>/jsp/Result.jsp</result>
<result name="input">/jsp/Result.jsp</result>
<result name="init">/jsp/LoginChild.jsp</result>
</action>
LoginAction.javapackage hello;import java.util.*;
import java.sql.SQLException;
import java.sql.Date;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class LoginAction extends ActionSupport
{ public String doInit() {
Map session = ActionContext.getContext().getApplication();
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("myrequest", "getMyRequest");
session.put("mysession", "getMySession");
return "init";
}
}我刚学struts2,我有两个问题请教高手
1.为什么我无法取得session对象到变量中去,比如
<% String name = session.getValue("**")%>
struts2中有类似的方法吗?2.为什么在loginChild.jsp中<% request.getAttribute("myrequest");%>取不到值?3.如果能够取到对象并保存起来,如何作为javascript的参数出进去,要如何转化吗?4.为什么javascript函数嵌在loginChild.jsp中不运行,比如在loginChild.jsp中加入
<script language="javascript">
alert('a');
</script>
有跟没有一个样,根本就不输出。摆脱大家了!
为什么在div中我能够取得到session的内容,而取不道request的内容?
画面的意图是这样的,我想在画面初始化的时候,调用action,然后在action中从数据库把邮政编码和地址的List对象取到,然后把这个对象传到javascript中去,同时画面输入的邮政编码也作为参数,这样在输入完邮政编码后,
地址就自动显示出来。想实现这样的功能,不过用request取不到值,用session我不知道如何保存值到javascript中去。login.jsp<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import= "java.util.* " %>
<%@ page import= "javax.servlet.http.HttpServletRequest" %>
<%@ page import= "org.apache.struts2.ServletActionContext" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="s" uri="/struts-tags" %><body>
<s:head theme="ajax"/>
<s:url id="url_panel1" action="Login/Init" /><div>
<s:div id="panel1"
label="login"
href="%{#url_panel1}"
theme="ajax"
/>
</div>
LoginChild.jsp<%@ page contentType="text/html; charset=UTF-8" import="java.util.*"%>
<%@ taglib uri="/struts-tags" prefix="s" %><div class="containerLogin">
<div class="loginArea">
<s:form action="Login/check" method="POST" validate="false">
<tr>
<td colspan="2">
<s:actionerror />
</td>
</tr> <s:textfield name="username"
label="username"
size="12"/>
<s:text name="${mysession}" />
<% request.getAttribute("myrequest");%>
<s:submit theme="ajax" key="OK" />
</s:form>
</div>
</div>
struts.xml:<action name="Login/*" class="hello.LoginAction" method="{1}">
<result>/jsp/Result.jsp</result>
<result name="input">/jsp/Result.jsp</result>
<result name="init">/jsp/LoginChild.jsp</result>
</action>
LoginAction.javapackage hello;import java.util.*;
import java.sql.SQLException;
import java.sql.Date;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class LoginAction extends ActionSupport
{ public String doInit() {
Map session = ActionContext.getContext().getApplication();
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("myrequest", "getMyRequest");
session.put("mysession", "getMySession");
return "init";
}
}我刚学struts2,我有两个问题请教高手
1.为什么我无法取得session对象到变量中去,比如
<% String name = session.getValue("**")%>
struts2中有类似的方法吗?2.为什么在loginChild.jsp中<% request.getAttribute("myrequest");%>取不到值?3.如果能够取到对象并保存起来,如何作为javascript的参数出进去,要如何转化吗?4.为什么javascript函数嵌在loginChild.jsp中不运行,比如在loginChild.jsp中加入
<script language="javascript">
alert('a');
</script>
有跟没有一个样,根本就不输出。摆脱大家了!
解决方案 »
- 求Java web 开源框架用来做ERP
- 下面这段浮动并每隔一行停顿一次的JS程序,无法在末尾的时候无缝自动接续。而是跳一下接续,求高手帮忙看一看?
- JasperReport+iReport做的报表以PDF方式显示的时候没有内容,请教怎么回事呀,急急急
- 多表做一个树形菜单,帮忙解决下 在线等....
- 有谁知道大连日设融合综合设计有限公司怎么样啊?!知道给小弟说说看啊!
- 超简单问题!如何转换当前时间为这样的格式“20040606(年月日)”,月和日都必须是两位,能有几种方法!!!
- 如何使第一次登陆页面时不检查request里面的值
- javaweb-------mybatis框架的入门知识讲解
- 关于jsp的几个问题 望高手指教
- 急!请问在jsp中有没有和asp中:response.end作用等效的语句!
- 关于JSP中相对路径和绝对路径
- js动态生成的文本框控件怎样传递给服务端
1,你可以在你的Action中定义全局变量HttpServletRequest request,这样在doInit中将"myrequest"放到request中去,在jsp页面中就可以用如下方式取出值了
s:property value="#request.myrequest"/>
2,你的Action实现ServletRequestAware接口,一样可以取到request,可以将你的"myrequest"值放到request中去,在jsp页面中一样用<s:property value="#request.myrequest" />
PS:你的100分很诱惑人哟,不要用这种方式来发问啦,真正的高手不会理啦!