重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
给你一个示例:
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的常山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
!DOCTYPE html
html
head
meta charset="utf-8"
title菜鸟教程(runoob.com)/title
script src=""
/script
script
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
/script
/head
body
h2这是一个标题/h2
p这是一个段落。/p
p这是另一个段落。/p
button点我/button
/body
/html
$(this).hide()是jQuery里面的隐藏功能,表示隐藏当前元素,确切点应该指的是对象,比如有一个按钮,你对该按钮添加这个点击事件就可以点击此按钮,实现隐藏这个按钮的功能,这里的this表示当前对象,就是你鼠标点击的那个页面元素对象
希望可以帮到你
1、首先,得学习一下html,主要是学习一下html标签的使用方法。推荐一个学习平台,W3C 菜鸟教程。这个教程简单易用,适用于初学入门者,能比较完善的学习html是怎么使用的。(如果感兴趣,学完后可以接着学一下html5,这个是目前最新版本的html,也比较简单的。)
2、学完了html,接着当然是学习css。html的作用是填充网页内容,css作用就是为内容加上外衣,让它看起来富有色彩,更好看。推荐同样在W3C 菜鸟教程上面去学习css,很简单,大概两三天的学习周期,这些内容需要强记一下,记下了多用就熟了,没有什么难度。(学完css,可以接着学习css3,目前最新版本的css,这个有兴趣就学,一般的话css3用的不是很多,个人觉得)
3、学完了html,css,接下来是重头戏,轮到了我们的javascript,业界简称js。很多程序员说js的难度超过了java, 我想说的是,简单易学的入门,深究可能就要费脑子了,当然大家不要怕,企业应用级别的js也是很简单的,吧W3C 菜鸟教程中的文档看完完熟了,也就了解了js的使用方法了,哈哈。
4、学完了上述的html,css,js后,咱们就可以成为一名合格的web前端程序员了。但是光合格还是不够的,技术要拿得出手,工作中才能轻松胜任,学习咱们搞编程是不能停止学习步伐的,继续出发!学什么呢,学完js后,首先要学的是jQuery框架,说它的大名鼎鼎是一点都不为过,不知道jquery是什么的程序员我就不想说什么了,你现在知道它的重要性了吗,这个一定得好好学习。
5、接下来我想推荐另外两个现在非常热门的比较新的框架,它们未来会成为主流前端框架,一个叫angularjs,目前最新版本的是angular4,另外一个是vue.js,大家感兴趣可以学习学习。
jquery的帮助文档是最好的学习文档,当然得有点js基础,网上也有jquery的教学视频,非常不错。其实写学jquery就是为了使用,在工作中有锻炼的机会可以大幅提高你对jquery的理解。在配合比较好的开发工具,那是非常有帮助的,目前从我了解到的前段开发工具中 ,提示功能最强大的是webstorm,还有其他的开发工具比如dreamweaver,eclipse ,文本编辑器editplus 等等。平常多看别人代码,多练习,熟悉相关api,很容易让你脱离所谓的“菜鸟”级别
1、引入包(本文中的包全部引自struts-2.1.8.1\lib):
struts2-json-plugin-2.1.8.1.jar
json-lib-2.1.jar
commons-collections-3.2.jar
commons-beanutils-1.7.0.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
ezmorph-1.0.3.jar
这7个包是返回json形式的数据必须的。因为json大量引用了Apache commons的包,所以要加入4个,commons包,除了commons的包外,还需要引入一个 ezmorph的包。最后加入struts2必须的6个包:
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
ognl-2.7.3.jar
freemarker-2.3.15.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
2、后台:
1) Userinfo实体类代码
public class UserInfo implements Serializable {
private int userId;
private String userName;
private String password;
get set方法略
}
2) Action类
public class TestAction extends ActionSupport {
private String message; //使用json返回单个值
private UserInfo userInfo; //使用json返回对象
private List userInfosList; //使用josn返回List对象
get set方法略
/*返回单个值*/
public String returnMsg(){
this.message = "成功返回单个值";
return SUCCESS;
}
/*返回UserInfo对象*/
public String returnUser(){
userInfo = new UserInfo();
userInfo.setUserId(10000);
userInfo.setUserName("刘栋");
userInfo.setPassword("123456");
return SUCCESS;
}
/*返回List对象*/
public String returnList(){
userInfosList = new ArrayListUserInfo();
UserInfo u1 = new UserInfo();
u1.setUserId(10000);
u1.setUserName("张三");
u1.setPassword("111111");
UserInfo u2 = new UserInfo();
u2.setUserId(10001);
u2.setUserName("李四");
u2.setPassword("222222");
userInfosList.add(u1);
userInfosList.add(u2);
return SUCCESS;
}
}
3) struts.xml(必须继承json-default、json-default继承自struts-default)
package name="default" namespace="/json" extends="json-default"
action name="returnMsg" class="com.testAction " method="returnMsg"
result name="success" type="json"
param name="root"validate/param
/result
/action
action name="returnUser "
class="com.testAction " method="returnUser "
result name="success" type="json"
param name="includeProperties"
userInfo\.userId,userInfo\.userName,userInfo\.password
/param
/result
/action
action name="returnList" class="com.testAction "
method="returnList"
result name="success" type="json"
param name="includeProperties"
userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password
/param
/result
/action
/package
3、前台:
1) 页面引入jquery-1.4.2.js
2) 代码如下:
script language="javascript"
function getMsg(){
$.ajax({
url:'json/returnMsg.action',
type:'post',
dataType:'json',
success:function(data){
$("#result").html(data.message);
}
});
}
function getUser(){
$("# result ").html("");
$.ajax({
url:'json/returnUser.action',
type:'post',
dataType:'json',
success:function(data){
$("#result").append("用户ID:"+data.userInfo.userId+"")
.append("用户名:"+data.userInfo.userName+"")
.append("密码:"+data.userInfo.password+"");
}
});
}
function getUserList(){
$("# result ").html("");
$.ajax({
url:'json/returnList.action',
type:'post',
dataType:'json',
success:function(data){
$.each(data.userInfosList,function(i,value){
$("#result").append("第"+(i+1)+"个用户")
.append("用户名:"+value.userName+"")
.append("密码:"+value.password+"");
}
}
});
}
/script
div id="result"/div
input type="button" value="获得单个消息" onclick="getMsg()"/
input type="button" value="获得用户信息" onclick="getUser()"/
input type="button" value="获得用户列表" onclick="getUserList()"/
4、只要继承extends="json-default",result type设置成json之后,容器会把action的属性自动封装到一个json对象中(json拦截器来做),然后调用ajax的callback方法. 返回json数据
5、includeProperties 参数:输出结果中需要包含的属性值,这里正则表达式和属性名匹配,可以用“,”分割填充多个正则表达式。
如:输出UserInfo的所有属性及UserInfo的userName属性
result type="json"
param name="includeProperties" userInfo.*,
userInfo \. userName /param
/result
6、excludeProperties 参数:输出结果需要剔除的属性值,也支持正则表达式匹配属性名,可以用“,”分割填充多个正则表达式,类同includeProperties
7、输出一个JSON List列表
result name="success" type="json"
param name="includeProperties"
userInfosList\[\d+\]\.userName,userInfosList\[\d+\]\.password
/param
/result
其中userInfosList是action中的一个List类型的属性,userInfosList \[\d+\]\. userName表示,userInfosList中存储的对象0..end的userName属性(list中存储的对象必须有userName属性)。
8、为什么要用includeProperties或excludeProperties 参数:主要是为了过滤掉接口,pojo的set、list、其它对象等不需要的数据防止循环取其它关联对象或找不到接口。如果不配置,默认是处理 action中的所有属性,如果action中有接口注入,json拦截器可能找不到接口而返回不了结果,还有如果action中有一个对象,这个对象与好多对象都有关联,json拦截器会将相关联的所有对象的属性全部转换成json格式,如果其它对象有list、set,其返回结果相当庞大,有可能是死循环而无法返回 。如果不用param name="includeProperties"或其他方式进行json数据过滤,通过debug你会发现前台返回的json字符串,是把 action中的所有属性全部转化成json字符串返回给客户端(包括service接口、pojo所有属性及有关联的pojo。有时候根本返回不了结果,也不报错,后台执行了,但前台执行不到callback function,这主要是因为找不到接口或者关联的pojo太多,造成死循环),一般情况下用的最多的就是root、 includeProperties 和excludeNullProperties参数。当然还有其他的方法,如给pojo的属性加json注解。
9、总结: action中避免使用get开头的action方法,去掉action中的接口的get方法 为json类型的result配置includeProperties, excludeProperties等参数.
基础性的学习网站:
w3school:
w3cplus:
菜鸟教程网:
易百教程:
脚本之家:
视频类的学习网站:
尚学堂:
慕课网:
扣丁课堂:
极客学院:
个人博客类的学习网站:
张鑫旭:
阮一峰:
廖雪峰:
辰辰:
轩枫阁:
社区类的学习网站:
segmentfault:
掘金:
简书:
Stack Overflow:
CSDN:
博客园:
希望对你有帮助!