jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签

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"/>"

时间: 2024-08-04 14:04:02

jsp脚本、jsp声明、jsp输出表达式、javascript、jsp标签、struts2标签的相关文章

JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象. 那么JSP对象有哪些呢? JSP内置对象          对应的类型   备注 R

jsp中:jsp声明与jsp脚本&lt;%! int count=0;%&gt; 与&lt;% int count=0;%&gt;

<body> <%!int count; %> <%int count2=0; %> 输出声明时候的count:<%=count++ %> <br> 输出脚本的count2:<%=count2++ %> <br> </body>每次刷新该jsp页面时对应的输出结果count每刷新一次增加1 count2每刷新一次 不变 分析: 因为count是jsp中声明的变量,当jsp编译成servlet时,cout是该se

初识JSP:JSP的注释、脚本、声明、表达式

1.JSP的注释 在HTML当中,如果使用传统的注释我们可以在客户端,也就是网页上右键查看源代码里面看得到该注释,但是JSP注释无法在客户端里看到.源码里面会只会看到JSP注释的地方空出来. 使用方法: <%--这是一个jsp注释,客户端不可见--%> Intellji IEDA的JSP注释快捷键是:Ctrl+/ 2.JSP的脚本 JSP脚本可以在HTML代码中嵌入Java代码. 使用方法: <% //这是一段可以写java代码的JSP脚本 //注意,这里面不能用jsp的注释方法 out

二:JSP脚本表达式

JSP脚本表达式(expression)用于将程序数据输出到客户端 语法:<%= 变量或表达式 %> 举例:当前时间:<%= new java.util.Date() %> JSP引擎在翻译脚本表达式时,会将程序数据转成字符串,然后在相应位置用out.print(…) 将数据输给客户端. JSP脚本表达式中的变量或表达式后面不能有分号(;). 因为在翻译后它是这样显示的out.println(变量或表达式); 加上“:”,Java语法错误,out.println(new Date(

JSP系列:(4)JSP进阶-EL表达式和JSP标签

jsp的核心语法: jsp表达式 <%=表达式%>和 jsp脚本<%>. 以后开发jsp的原则: 尽量在jsp页面中少写,甚至不写java代码. 目标: 1)使用EL表达式代替jsp表达式. 2)使用JSP标签代替jsp脚本. 1.EL表达式 1.1.EL作用 使用EL表达式替换掉jsp表达式 EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} <%@ page language="java" import=

JSP中脚本、声明和表达式的本质区别

原文地址:http://blog.csdn.net/csuliky/article/details/2444854 JSP脚本元素 使用JSP脚本元素可以将Java代码嵌入到JSP页面里,这些Java代码将出现在由当前JSP页面生成的Servlet中, 使JSP将静态内容与动态内容分离出来.脚本元素包含: 1. 表达式 表达式: 是对数据的表示,系统将其作为一个值进行计算. 语法:<%= expression %> 例如:<%=user.getName() %> 表达式的本质:在将

使用表达式和jsp脚本打印九九乘法表

<body> <%! //返回九九乘法表对应的HTML代码,通过表达式来调用,在页面上显示 //使用表达式方式整出九九乘法表 String printMultiTable1()//方法 { String s = ""; for(int i=1;i<=9;i++) { for(int j=1;j<=i;j++) { //s+=i+"*"+j+"="+(i*j)+"\t";不推荐 s+=i+"

JSP中的声明语句块和表达式块

一.JSP中的声明语句块 在JSP页面中使用<%!%>括起来的部分,称为声明语句块.声明语句块中的内容,将被JSP引擎翻译到Servlet的类体中,是不会被包含到某个方法中的. 这样的话,在JSP的声明语句块中就可以声明实例变量.实例方法.静态方法.静态代码块等内容.并且,这些内容均可被JSP的的Java代码块中的代码访问.因为可以访问类属性的.不过,还是不建议在JSP的声明语句块中声明实例变量.因为JSP是运行在单例多线程环境下的,实例变量将会引起线程安全问题. 需要注意的是,在JSP的声明

使用JSP表达式和JSP脚本打印九九乘法表

首先使用JSP声明声明一个函数用于得到九九乘法表的内容 <%! String printMultiTable() { String s = ""; for (int i = 1; i < 10; i ++) { for (int j = 1; j <= i; j ++) s += " " + i + " * " + j + " = " + (i * j) + " "; s += "