关于Struts2标签库属性值的%与#号的关系:
1.如果标签的属性值是OGNL表达式,那么无需加上%{}
2.如果标签的属性值是字符串类型,那么在字符串当中凡是出现的%{}都会被解析成OGNL表达式,解析完毕后再与其他的字符串进行拼接构造出最后的字符串值。
3.我们可以再所有的属性值上加%{},这样如果该属性值是OGNL表达式,那么标签处理类就会将%{}忽略掉
实例:
创建一个javaWeb工程,导入struts2相关jar包,配置文件。
action代码如下:
package com.ognl.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.ognl.bean.Cat;
import com.ognl.bean.Person;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction extends ActionSupport implements RequestAware,ApplicationAware,SessionAware
{
private String username;
private String password;
private Map<String,Object> requestMap;
private Map<String,Object> sessionMap;
private Map<String,Object> applicationMap;
private List<Person> list = new ArrayList<Person>();
@Override
public void setRequest(Map<String, Object> arg0) {
this.requestMap = arg0;
}
@Override
public void setSession(Map<String, Object> arg0) {
this.sessionMap = arg0;
}
@Override
public void setApplication(Map<String, Object> arg0) {
this.applicationMap = arg0;
}
@Override
public String execute() throws Exception {
requestMap.put("hello", "world");
sessionMap.put("hello", "hello");
applicationMap.put("hello", "hello123");
Cat cat1 = new Cat("cat1",20,"red");
Cat cat2 = new Cat("cat2",30,"blue");
String[] friends1 = {"test1","test2","test3"};
String[] friends2 = {"welcome1","welcome2","welcome3"};
Map<String,String> map1 = new HashMap<String,String>();
Map<String,String> map2 = new HashMap<String,String>();
map1.put("test1", "test1");
map1.put("test2", "test2");
map2.put("hello1", "hello1");
map2.put("hello2", "hello2");
Person person1 = new Person("zhangsan",20,"bejing",friends1,cat1,map1);
Person person2 = new Person("lisi",30,"shichuan",friends2,cat2,map2);
list.add(person1);
list.add(person2);
return SUCCESS;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Person> getList() {
return list;
}
public void setList(List<Person> list) {
this.list = list;
}
}
jsp页面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
取属性:
<s:property value="username"/><br>
<s:property value="password"/><br>
---------------------------------------<br>
<s:property value="#parameters.username"/>
<s:property value="#parameters.password"/>
<br>
------------------------------------------<br>
request:<s:property value="#request.hello"/>
session:<s:property value="#session.hello"/>
application:<s:property value="#application.hello"/>
<br>
-----------------------------------------<br>
person1:address:<s:property value="list[0].address"/>
person2:age:<s:property value="list[1].age"/>
person1:cat:name:<s:property value="list[0].cat.name"/>
size:<s:property value="list.size"/>
<br>
<s:property value="list[0].friends[0]"/>
<br>
<s:property value="list[1].friends.length"/>
<br>
<s:property value="list[1].map['hello1']"/>
<br>
filtering:
<s:property value="list.{? #this.name.length()>3}.size"/>
<br>
----------------------------------<br>
<s:iterator value="list.{? #this.name.length()>3}">
<s:property value="name"/><br>
<s:property value="cat.color"/><br>
<s:property value="friends.length"/><br>
--------------------------<br>
</s:iterator>
Projection:<br>
<s:iterator value="list.{age}">
<s:property/>
</s:iterator>
</body>
</html>
运行结果如下:
上一篇文章介绍了JQuery的入门和使用,从本篇文章开始,我们就正式的进入到了JQuery的世界。
本文主要介绍JQuery选择器,为什么首要介绍这个东西呢?因为后续一系列操作都会用到这个家伙。
如果有人问你为什么要选择JQuery时,你大可告诉他说:JQuery这个家伙的选择器太强大,我基本可以通过选择器获取到页面的任何一个元素,也可以操作任何一个元素。
这就是为什么一旦进入JQuery的世界,我们就要认识它——JQuery选择器。
为了更好的铺垫后续的内容,本文首先介绍下JQuery语法。
JQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。
上篇文章的例子其实已经涵盖了JQuery的语法,比如:
$("a").click(function(event){
alert("Welcome to Xue's Blog!");
});
我们可以看到基本的语法如下:
美元符号$——定义JQuery
选择符("a")——“查询”和“查找” HTML 元素
JQuery 的click抽象为action()—— 执行对元素的操作
比如$(this).hide();//隐藏当前对象
总而言之,JQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。
JQuery选择器用得比较普遍的就是:元素选择器、属性选择器、CSS选择器。
JQuery元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。
JQuery元素选择器指的是——使用 CSS 选择器来选取 HTML 元素。
编号
实例
选取
1
$("p")
选取 <p> 元素
2
$("p.intro")
选取所有 class="intro" 的 <p> 元素
3
$("p#demo")
选取 id="demo" 的第一个 <p> 元素
JQuery使用 XPath 表达式来选择带有给定属性的元素。
编号 实例 选取 1 $("[href]") 选取所有带有 href 属性的元素 2 $("[href='#']") 选取所有带有 href 值等于 "#" 的元素 3 $("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素 4 $("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素
CSS 选择器可用于改变 HTML 元素的 CSS 属性。
如果现在给你个问题:把所有 p 元素的背景颜色更改为红色。
如果在用ExtJS的时候,是不是感觉特别麻烦,但是在JQuery的世界里就不存在了。
只要使用CSS选择器,就可以轻松解决,如下列代码:
$("p").css("background-color","red");2.4 JQuery 选择器汇总
可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。
实例
警告框带有折行的警告框确认框提示框警告框
警告框经常用于确保用户可以得到某些信息。
当警告框出现后,用户需要点击确定按钮才能继续进行操作。
语法:
alert("文本")确认框
确认框用于使用户可以验证或者接受某些信息。
当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。
如果用户点击确认,那么返回值为 true。如果用户点击取消,那么返回值为 false。
语法:
confirm("文本")提示框
提示框经常用于提示用户在进入页面前输入某个值。
当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。
如果用户点击确认,那么返回值为输入的值。如果用户点击取消,那么返回值为 null。
语法:
prompt("文本","默认值")<head>
<script type="text/javascript">
function disp_alert()
{
alert("我是警告框!!")
}
</script>
</head>
<body>
<input type="button" onClick="disp_alert()" value="显示警告框" />
</body>
</html>
<head>
<script type="text/javascript">
function disp_alert()
{
alert("再次向您问好!在这里,我们向您演示" + '\n' + "如何向警告框添加折行。")
}
</script>
</head>
<body>
<input type="button" onClick="disp_alert()" value="显示警告框" />
</body>
</html>
<head>
<script type="text/javascript">
function show_confirm()
{
var r=confirm("按下一个按钮!");
if (r==true)
{
alert("按下 确定!");
}
else
{
alert("按下 取消!");
}
}
</script>
</head>
<body>
<input type="button"