jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签
2015-10-15 15:21
701 查看
1. 先界定一下题目中概念。
(1)jsp脚本:有的地方也叫java脚本,指用<% %>括起来的jsp页面中的java脚本。所有能在java程序中执行的代码,都可以通过jsp脚本执行。
(2)jsp声明:用<%!声明部分%>形式声明的变量和方法。可以直接用在jsp脚本中。
(3)jsp输出表达式:用<%=表达式 %>输出表达式的值,效果与jsp脚本中的out.println相同。表达式后面不能有分号。
(4)javascript:页面中<script></script>之间的代码,简称js。js插入的位置不同,执行效果也不同。放在<head>中的js调用时才执行,而放在<body>部分的在网页读到这部分时就会执行。也可以像添加外部CSS一样添加外部javaScript脚本文件,其后缀通常为.js。例如:
<head>
<script src="example.js"></script>
</head>
2. jsp脚本、jsp声明、jsp输出表达式之间
jsp声明中声明的变量和方法对应于Servlet中的成员变量和方法(可以从tomcat的work\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中获取标签的值。不同的标签方法读取值可能会不同。例如,struts2的autocompleter就需要用下面的方式获得。
var completer=dojo.widget.byId("name");
var organizationName=completer.comboBoxSelectionValue.value;
而getElementByName用户获取一组同名的标签。
也可以在javascript中设置标签的值。例如:
document.getElementById("code").value="test";
4. jsp脚本、struts2 action之间
jsp脚本要访问struts2 action传过来的变量,要用到ValueStack。例如:
<%
ValueStack vs = (ValueStack) request.getAttribute("struts.valueStack");
User user=(User)vs.findValue("user");
String name=vs.findValue("name");
%>
其中,user和name是action中定义的成员变量,并有对应的getter和setter方法。
5. jsp标签、struts2标签、struts2 action之间
struts2 action要访问jsp标签、struts2标签的值,需要有和标签同名的变量,并有对应的getter和setter方法,这是struts2的传值机制。当然,struts2 action传值给result中转向的jsp页面中的jsp标签、struts2标签时,也使用同名机制。注意,值的传递是单次的,也就是说,如果jsp1->action1->jsp2,jsp1只能传值给action1。
jsp标签、struts2标签通过页面中的form或s:form将值传递给action,action通过setter方法或直接给与标签同名的action成员变量赋值的方法将值传递给jsp页面。
1)对jsp标签来讲,需要使用<s:property>访问action传来的值。例如:
<input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="user.name"/>"
>
<input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="name"/>"
>
前者传过来的user是对象,有name属性;后者传过来的name是简单类型数据,如string。
2)对struts2标签来讲,需要%{ 变量 }的方式访问传来的值,强转。例如:
<s:textfield name="name" id="name" size="40" value="%{user.name}"> </s:textfield>
<s:textfield name="name" id="name" size="40" value="%{name}"> </s:textfield>
6. jsp输出表达式、struts2 action之间
jsp输出表达式也可以直接输出struts2 action传来的值。例如:
<%=pageNum * pageSize%>
其中,pageNum和pageSize是struts2 action传来的值。
7. javascript访问struts2 action传来的数据
使用s:property读取即可。下例中,smsUnit是从action传过来的变量。
document.getElementById("smsUnit").value="<s:property value="smsUnit"/>"
(1)jsp脚本:有的地方也叫java脚本,指用<% %>括起来的jsp页面中的java脚本。所有能在java程序中执行的代码,都可以通过jsp脚本执行。
(2)jsp声明:用<%!声明部分%>形式声明的变量和方法。可以直接用在jsp脚本中。
(3)jsp输出表达式:用<%=表达式 %>输出表达式的值,效果与jsp脚本中的out.println相同。表达式后面不能有分号。
(4)javascript:页面中<script></script>之间的代码,简称js。js插入的位置不同,执行效果也不同。放在<head>中的js调用时才执行,而放在<body>部分的在网页读到这部分时就会执行。也可以像添加外部CSS一样添加外部javaScript脚本文件,其后缀通常为.js。例如:
<head>
<script src="example.js"></script>
</head>
2. jsp脚本、jsp声明、jsp输出表达式之间
jsp声明中声明的变量和方法对应于Servlet中的成员变量和方法(可以从tomcat的work\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中获取标签的值。不同的标签方法读取值可能会不同。例如,struts2的autocompleter就需要用下面的方式获得。
var completer=dojo.widget.byId("name");
var organizationName=completer.comboBoxSelectionValue.value;
而getElementByName用户获取一组同名的标签。
也可以在javascript中设置标签的值。例如:
document.getElementById("code").value="test";
4. jsp脚本、struts2 action之间
jsp脚本要访问struts2 action传过来的变量,要用到ValueStack。例如:
<%
ValueStack vs = (ValueStack) request.getAttribute("struts.valueStack");
User user=(User)vs.findValue("user");
String name=vs.findValue("name");
%>
其中,user和name是action中定义的成员变量,并有对应的getter和setter方法。
5. jsp标签、struts2标签、struts2 action之间
struts2 action要访问jsp标签、struts2标签的值,需要有和标签同名的变量,并有对应的getter和setter方法,这是struts2的传值机制。当然,struts2 action传值给result中转向的jsp页面中的jsp标签、struts2标签时,也使用同名机制。注意,值的传递是单次的,也就是说,如果jsp1->action1->jsp2,jsp1只能传值给action1。
jsp标签、struts2标签通过页面中的form或s:form将值传递给action,action通过setter方法或直接给与标签同名的action成员变量赋值的方法将值传递给jsp页面。
1)对jsp标签来讲,需要使用<s:property>访问action传来的值。例如:
<input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="user.name"/>"
>
<input name="name" type="text" class="form_field_default" size="50" id="name" value="<s:property value="name"/>"
>
前者传过来的user是对象,有name属性;后者传过来的name是简单类型数据,如string。
2)对struts2标签来讲,需要%{ 变量 }的方式访问传来的值,强转。例如:
<s:textfield name="name" id="name" size="40" value="%{user.name}"> </s:textfield>
<s:textfield name="name" id="name" size="40" value="%{name}"> </s:textfield>
6. jsp输出表达式、struts2 action之间
jsp输出表达式也可以直接输出struts2 action传来的值。例如:
<%=pageNum * pageSize%>
其中,pageNum和pageSize是struts2 action传来的值。
7. javascript访问struts2 action传来的数据
使用s:property读取即可。下例中,smsUnit是从action传过来的变量。
document.getElementById("smsUnit").value="<s:property value="smsUnit"/>"
相关文章推荐
- JavaScript对象系统的使用
- C#中Json字符串的各种应用类
- 在JavaScript中创建新对象
- 在JSP页面中调用另一个JSP页面中的变量
- 在JSP页面中调用另一个JSP页面中的变量
- js 幽灵js可以用在页面加载计时和页自动化
- 深入解析Python编程中JSON模块的使用
- JS压缩
- 阿里巴巴中的FastJson解析
- JSTL
- 使用JavaScript+Html创建win8应用(二)
- 使用JavaScript+Html创建win8应用(一)
- dropzone.js 拖拽上传文件
- 基于对象的JavaScript语言
- FineReport——JS二次开发(下拉框)
- js闭包
- js 浏览器兼容问题
- JSON服务器的使用和客户端的解析
- seajs常用配置
- 如何通过JS,在html网页上进行添加元素,包括div 以及下拉框等