Java开发的应该如何掌握上述相关技术?
一:首先,有这样的一种情况很常见,对于想自学Java开发的人来说,他们
大多数都是非常盲目的,不知道自己改如何入手,很多人在网上找一些视频,然后疯狂的过视频,很快就把一块内容都学完,他们理解的学完了就是视
频看完了,但是让他们动手去做东西却做不出来,而我的理解学完了就是自己能写出东西,所以对于初学者来说一定不能盲目,要有自己的规划,不然
就是浪费时间白忙活。
二:既然是学习Java开发专业技术,我个人的建议是,一定要有一个能指导
你的人,不能都靠自己闭门造车,这样的行为并不聪明,结识一位这方面的人才,时不时去问问人家问题,不然你可能会发现一个小问题能困扰你一天
,**后还不知道是什么原因。
三:学习Java开发技术,不能跟学数学语文一样对待,比较刚接触代码是不
容易记住的,所以要掌握上述的技术,你还要知道学习Java开发技术有哪些“坑”。对于学习方法这块是尤为重要的,怎么学才能让你学完了能记住之
前学的那些,不至于学完了就忘,这个问题值得你学习之前去思考的。
四:根据我多年的学习情况来看,你平时一定要养成好的学习习惯,就说我
自己吧!我就喜欢把自己曾经遇到的问题整理在电脑的日记本上,然后我会搜集一下博客相关的Java技术文章,一些我认为比较有用的网站,以后都能
用的上,这是我个人的学习习惯,相信我,如果你想走的更远,一定要养成习惯。
**后给大家一些详细的学习安排路线:
Java基础:Java基础语法、数组、类与对象、继承与多态、异常、范型、集
合、流与文件、反射、枚举、自动装箱和注解。
数据库:mysql、oracle
Javaweb:HTML与CSS网页开发基础、Java脚本语言、搭建开发环境、JSP基
本语法、JSP内置对象、JavaBean技术、Servlet技术、Ajax技术
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
Java开发体系结构介绍 :
1、类加载器:为程序的执行加载所需要的全部类。类加载器将本地文件系
统的类名空间与来自远程网络源的类名空间相分离,本地类总是首先被加载,以增加安全性。当全部类被加载后,可执行文件的存储器格式被确定。这
时,特定的存储器地址被分配给符号引用并创建检索表格。由于存储器格式在运行时出现,因而Java解释器增加了保护以防止对限制代码区的非法进入
。
2、字节代码校验器:基于代码的规范包括语法语义的检查以及如上所述的
安全性检查。
3、Java运行时解释器:它是JVM的核心内容,实现把抽象的字节码指令映射
到本地系统平台下的库引用或指令。
4、API类库:实现标准Java平台API的一系列可执行代码。
5、硬件本地平台接口:提供对底层系统平台资源库调用的接口。
ASP.NET AJAX Advance Tips & Tricks (3) JavaScript与Tab的交互
>
前言
asp.net Ajax Control Toolkit 中的Tab控件非常简单易用,对服务端和客户端的支持都非常不错。本篇**几个FAQ给大家介绍Tab和javaScript的常用交互,以及应该注意到的问题。
1. TabCantainer的Javascript接口
目前的Tab控件很多,而Altas的Tab控件有点在于JavaScript接口非常丰富,而且非常便于理解和使用,一般常用的有以下几组:
get_headerText //获取标题文字
set_headerText //设置标题文字
get_headerTab //获取标题Tab
set_headerTab //设置标题Tab
get_enabled //启用TabPanel
set_enabled //禁用TabPanel
get_owner //获取TabPanel父容器
set_owner //设置TabPanel父容器
get_scrollBars //获取滚动条状态
set_scrollBars //设置滚动条状态
get_tabIndex //获取TabPanel的序号
_get_active//获取当前活动的TabPanel
_set_active//设置当前活动的TabPanel
而所有的接口可以在源代码的Tabs.js文件中找到:
2. 常用例子
A. 获取TabContainer当前活动的TabPanel
function GetActiveTab(tabControl) {
var ctrl = $find(tabControl);
var activeid = ctrl.get_activeTab().get_tabIndex();
alert(activeid);
}
B. 设置TabContainer当前活动的TabPanel
function SetActiveTab(index) {
var ctrl = $find("TabContainer1");
var tabpanel = ctrl.get_tabs()[index];
ctrl.set_activeTab(tabpanel);
}
3. 修改Tab控件,使其支持鼠标移动激活
尽管Tab控件比较酷,也很便于使用,但它默认的事件是点击标签来激活一个TabPanel,而很多JavaScript Tab和一些第三方控件的Tab都是靠onmouSEOver来激活一个TabPanel。如果想要使 Tab控件**onmouseover激活TabPanel,我们可以**修改源代码来实现:
//in the "Tab.js" change the “_header_onmouseover” (near the 522nd line) as following:
_header_onmouseover: function(e) {
Sys.UI.DomElement.addCSSClass(this._tab, "ajax__tab_hover");
this.get_owner().set_activeTab(this);//添加这一行(add this line to the original code)
},
4. ClientID问题
与一般的ASP.NET服务端容器一样,在TabPanel里的控件也会在Render的时候重命名,为其生成一个ClientID,如果需要在JavaScript中对这些控件进行操作,我们必须要获得它们的ClientID,如下的代码是一般的方法:
<%@ Page Language="C#" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPRefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public string tabContentTableClientID
{
get { return tabContentTable.ClientID; }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function getTabsOnSuccess() {
document.getElementById( <%=tabContentTableClientID%> ).innerHTML = "Hello world";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" Height="381px"
Width="536px">
<cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
<HeaderTemplate>
TabPanel1
</HeaderTemplate>
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Panel ID="tabContentTable" runat="server">
</asp:Panel>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>
<input id="Button1" type="button" value="button" onclick="getTabsOnSuccess();" />
</div>
</form>
</body>
</html>
然而,如果你实验上面的代码,则会发现它是不work的,ClientID并没有正确的获得,反而产生了稀奇古怪的错误。
其原因是ASP.NET编译的顺序问题,由于AJAX控件是采用Sys.application.add_init()添加到页面中的,而我们在上面例子中对ClientID的绑定在这个过程之前,所以产生了这种顺序错误。
解决方案很简单,就是把写在<head></head>中的JavaScript代码写到body的末尾,这样,可以确保能够在JavaScript代码中的ClientID绑定时,Tab已经成功添加到页面Control Tree,从而解决问题:
<%@ Page Language="C#" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public string tabContentTableClientID
{
get { return tabContentTable.ClientID; }
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" Height="381px"
Width="536px">
<cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
<HeaderTemplate>
TabPanel1
</HeaderTemplate>
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Panel ID="tabContentTable" runat="server">
</asp:Panel>
</ContentTemplate>
</cc1:TabPanel>
<cc1:TabPanel runat="server" HeaderText="TabPanel2" ID="TabPanel2">
<ContentTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ContentTemplate>
</cc1:TabPanel>
</cc1:TabContainer>
<input id="Button1" type="button" value="button" onclick="getTabsOnSuccess();" />
</div>
</form>
<script type="text/javascript">
function getTabsOnSuccess() {
document.getElementById( <%=tabContentTableClientID%> ).innerHTML = "Hello world";
}
</script>
</body>
</html>
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构