使用jquery接受jsp页面中的http会话请求参数

时间:2011-12-09 11:14:27

标签: java jquery jsp

我正在使用struts在Web应用程序中工作。我在struts动作类中执行一些操作并使用session.setAttribute我正在设置结果值。我的struts动作类将结果发送到我正在显示结果的jsp页面。我必须在加载jsp页面后显示消息,因此我尝试使用jquery。但我没有得到如何在jquery中处理http sesion请求。

之前我在sturts-config.xml中使用了一个属性并设置了值而不是发送http会话请求参数。但它对我不起作用,因为每当我刷新页面时,它都需要struts-config.xml的初始值。我通过写:

将struts属性作为jsp页面中的隐藏字段
     <html:hidden property="propname" styleId="id_propname" name="formname" />

用于设置属性值null我在jquery中编写以下代码。

    <script type="text/javascript">
        $(document).ready(function() 
          { 
              alert("some text");
             $("#id_propname").val("");    
        });            
    </script> 

有什么办法可以直接在jquery中获取http会话请求吗?如果你能提出一些建议,请回复我,我要事先提出所有有价值的建议。

2 个答案:

答案 0 :(得分:2)

恕我直言,没有简单的方法将你的会话传递给jquery。您可以做的是设置一些隐藏字段的值并在脚本上声明一个全局变量并访问该值并检查有效条件(如果有)。

虽然它丑陋且非常不鼓励在jsp中使用scriptlet,但这可能有用: -

<% String sessionVal = session.getAttribute("yourSessionValue").toString() %> 
<html type="hidden" id="id_propname" name="propname" value=<%=sessionVal> >

在你的jquery中:

 <script type="text/javascript">
    var sessionVal;
    $(document).ready(function() 
      { 
          sessionVal =  $("#id_propname").val();
          alert("this is the session value at Script " + sessionVal );

    });            
</script> 

未完成会话的空检查。

或者

如果使用标记库,可以在表单bean上设置会话值,并在jsp中使用类似的东西: -

<logic:equal name="yourFormBean" property="yourProperty" value="someDefinedValue">
 Do your action here         
</logic:equal> <br />

答案 1 :(得分:0)

以Java对象的形式与servlet相关的http会话和请求都存在于服务器端。另一方面,JQuery“通常”会在客户端生活...因此您的问题描述有点“关闭”。

您在httpsession或/和httprequest中“发送”的参数是针对jsp生成的,其中jQuery不起任何作用。然后发送到浏览器的是由jsp引擎生成的HTML。然后,jQuery可以使用浏览器中的这个HTML。

顺便说一句,框架名称是Struts而不是Sturts。

考虑到这些信息,我真的不明白你想要做什么。