JSP脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签、struts2 action传值问题

 1. 先界定一下题目中概念。

(1)        jsp脚本:有的地方也叫java脚本,指用<%%>括起来的jsp页面中的java脚本。所有能在java程序中执行的代码,都可以通过jsp脚本执行。

<%

   PhotoVOvo = (PhotoVO)request.getAttribute("mVo");

   Stringpath = request.getContextPath();

   StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

(2)        jsp声明:用<%!声明部分%>形式声明的变量和方法。可以直接用在jsp脚本中。

(3)        jsp输出表达式:用<%=表达式%>输出表达式的值,效果与jsp脚本中的out.println相同。表达式后面不能有分号。

<input type="text"name="name" id="name"value="<%=vo.getNamea()%>"/>

4javascript:页面中<script></script>之间的代码,简称jsjs插入的位置不同,执行效果也不同。放在<head>中的js调用时才执行,而放在<body>部分的在网页读到这部分时就会执行。也可以像添加外部CSS一样添加外部javaScript脚本文件,其后缀通常为.js。例如:

<head>

  <scriptsrc=\'#\'" /script>

</head>

5剩下的几个好像就没有必要解释了,在此略过。

2. jsp脚本、jsp声明、jsp输出表达式之间

jsp声明中声明的变量和方法对应于Servlet中的成员变量和方法(可以从tomcatwork\Catalina\localhost目录下找到转换成的类)。可以在jsp脚本和jsp输出表达式中直接使用。

jsp脚本中定义的变量也可以在jsp输出表达式中使用。例如:

<!-- 下面是JSP声明部分 -->
<%!
public int count;
public String info()
{ return "hello";}
%>
<%
Integer i=10

out.println(count++);
%>
<%
out.println(info());
%>

<%=count++%>

<%=info()%>

<%=i%>

3. jsp标签、struts2标签和javascript之间

var orgIP=document.getElementById("address").value之类在javascript中获取标签的值。不同的标签方法读取值可能会不同。例如,struts2autocompleter就需要用下面的方式获得。

 varcompleter=dojo.widget.byId("name");
 var organizationName=completer.comboBoxSelectionValue.value;
getElementByName用户获取一组同名的标签。也可以在javascript中设置标签的值。例如:

document.getElementById("code").value="test";

4. jsp脚本、struts2 action之间

jsp脚本要访问struts2 action传过来的变量,例如:

<%

   PhotoVOvo = (PhotoVO)request.getAttribute("mVo");

   Stringpath = request.getContextPath();

   StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

其中,usernameaction中定义的成员变量,并有对应的gettersetter方法。

5. jsp标签、struts2标签、struts2 action之间

struts2 action要访问jsp标签、struts2标签的值,需要有和标签同名的变量,并有对应的gettersetter方法,这是struts2的传值机制。当然,struts2 action传值给result中转向的jsp页面中的jsp标签、struts2标签时,也使用同名机制。注意,值的传递是单次的,也就是说,如果jsp1->action1->jsp2jsp1只能传值给action1

 jsp标签、struts2标签通过页面中的forms:form将值传递给actionaction通过setter方法或直接给与标签同名的action成员变量赋值的方法将值传递给jsp页面。

1)对jsp标签来讲,需要使用<s:property>访问action传来的值。例如:

<input name="name"type="text" class="form_field_default" size="50"id="name" value="<s:propertyvalue="user.name"/>" >

<inputname="name" type="text"class="form_field_default" size="50" id="name"value="<s:property value="name"/>" >

前者传过来的user是对象,有name属性;后者传过来的name是简单类型数据,如string

2)对struts2标签来讲,需要%{变量}的方式访问传来的值。例如:

<s:textfieldname="name" id="name" size="40"  value="%{user.name}"> </s:textfield>  

<s:textfieldname="name" id="name"size="40"  value="%{name}"> </s:textfield>  

6. jsp输出表达式、struts2 action之间

jsp输出表达式也可以直接输出struts2 action传来的值。例如:

<%=pageNum *pageSize%>

其中,pageNumpageSizestruts2 action传来的值。

7. javascript访问struts2 action传来的数据,现在一般应用ajax技术进行异步传输

使用s:property读取即可。下例中,smsUnit是从action传过来的变量。

document.getElementById("smsUnit").value="<s:propertyvalue="smsUnit"/>"

actionjson格式数据ajax异步传输给js

function queryData(queryCardno){

         $.ajax({

                   type: "POST",

                   url: "<%=path%>/queryBasicAction.action",

                   dataType:"json",

                   data: "queryCardno="+queryCardno,

                   success: function(json){

                       var vo = json.mVo;

                       var isnull = json["isnull"];

                       var path = vo.path;

var type = vo.type;

……

}

})

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值