⑴ javabean到底有什么用感觉它和一般java文件没什么区别,希望高手能拿个例子来体现javabean的作用和优势谢
jsp的一个重要特性就是可以用javaBean实现功能的扩展。将大部分功能放在javaBean中完成,以使jsp页面程序更干净简洁、利于维护。JavaBean可以很方便的用来捕获页面表单的输入并完成各种业务逻辑的处理。如下就是一个Hello示例:
testA.jsp页面:
<%@ page contentType="text/html;charset=GBK" %>
<html>
<head>
<title>示例</title>
</head>
<body scroll=no>
<form name="frma" method="post" action="testB.jsp" >
<p>
你的姓名:
<input type="text" size="15" name="yourName" value="" id=yourName>
<input type="button" align="center" name="subBtn" value="[提交]" onClick="f_check()" id=subBtn>
</p>
</form>
</body>
</html>
<script language="JavaScript" type="text/javascript">
<!--
function f_check(){
if(document.forms(0).yourName.value==""){
alert("请输入姓名");
}else{
document.forms(0).submit();
}
}
-->
</SCRIPT>
testB.jsp页面
<%@ page contentType="text/html;charset=GBK" %>
<html>
<head>
<title>示例</title>
</head>
<jsp:useBean id="tBean" scope="page" class="bean.TestBean" >
<jsp:setProperty name="tBean" property="*" />
</jsp:useBean>
<body scroll=no>
<form name="frmb" method="post" action="" >
<p>
<%=tBean.hello()%>
</p>
</form>
</body>
</html>
TestBean.java 代码:
package bean;
public class TestBean{
private String yourName = "";
public void setYourName(String yourName){
this.yourName = ConvertGBK(yourName);
}
public String hello(){
String strHello = "Hello:"+yourName;
return strHello;
}
//汉字转换方法
public String ConvertGBK(String str){
String strReturn="";
try{
strReturn=new String(str.getBytes("ISO-8859-1"),"GBK");
}catch(Exception ex){
System.out.println("TestBean.ConvertGBK():ex="+ex.toString());
}
finally{
return strReturn;
}
}
}
testA.jsp页面上“提交”按钮将表单提交给testB.jsp页面,testB.jsp获得的testA.jsp中yourName文本框的值并在实例化TestBean后,执行bean中的setYourName方法,接着执行hello方法,在页面上输出对你问好的语句。
这个简单的示例体现了在jsp中使用javaBean的两个重要方面,一个是捕获表单的输入并保存,一个是执行逻辑功能。所以,依此两个功能还可以将用在jsp中的javaBean分为值Bean(value bean)和工具Bean (utility bean),如下:
值Bean
package bean;
public class TestValueBean{
private String yourName = "";
public void setYourName(String yourName){
this.yourName = ConvertGBK(yourName);
}
//汉字转换方法
public String ConvertGBK(String str){
String strReturn="";
try{
strReturn=new String(str.getBytes("ISO-8859-1"),"GBK");
}catch(Exception ex){
System.out.println("TestBean.ConvertGBK():ex="+ex.toString());
}
finally{
return strReturn;
}
}
}
工具Bean
package bean;
public class TestUtilityBean{
public String hello(TestValueBean tvBean){
String strHello = "Hello:"+tvBean.getName();
return strHello;
}
public String hello(String yourName){
String strHello = "Hello:"+yourName;
return strHello;
}
}
当然,从这个例子看是没有必要分开value bean和utility bean的,但在具有复杂业务逻辑的web应用程序中就可以用value bean实现对表单输入的捕获、保存,减少对数据库中那些值几乎不变的实体的访问,或将value bean放在一定作用域内使此作用域内的多个jsp页面共享。用utility bean完成操作数据库、数据处理等业务逻辑,以value bean 或页面传递的值为参数。
⑵ jsp文本框中的内容增多时如何自动换行
文本框不能换行的,要是文本框可以换行就成了文本域了,你要是觉得文本框不够长,可以通过设置其width属性改变其长度;
⑶ 我下了一个Ewebeditor,请问怎么引用
总结了以下,你基本提出了三大问题
一:关于引用
先创建一个textarea域,示例:
<textarea name="content" style="display:none"></textarea>
其中style="display:none" 决定了这个文本域是隐藏的.
在调用eWebEditer,示例:
<iframe ID="eWebEditor1" src="/ewebeditor.htm?id=content1&style=coolblue" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
其中src="/ewebeditor.htm?id=content&style=coolblue"中id=后面的第一个参数必须和textarea域的name属性的值一致.
输入信息页面完整示例:
<html>
<head>
<title>Untitled</title>
</head>
<body>
<form name="myform" method="post" action="display.asp">
<textarea name="content" style="display:none"></textarea>
<iframe ID="eWebEditor1" src="/ewebeditor.htm?id=content&style=coolblue" frameborder="0" scrolling="no" width="500" HEIGHT="350"></iframe>
<input type="submit" name="btnSubmit" value="Submit">
</form>
</body>
</html>
二.关于获取eWebEditor中输入的值:
在上面完整代码中<form name="myform" method="post" action="display.asp">这一段中 属性action="display.asp"
display.asp指示了处理上面表单的程序.下面我们在display.asp中获取eWebEditor中编辑的值,示例:
<%
sContent = Request.Form("content")
Response.Write sContent
%>
其中Request.Form("content")中参数必须和textarea域中name的属性一致.
这样我们在display.asp已经获取了在eWebEditor中编辑的代码.
三.将获取的文本插入数据库:
由于eWebEditor中取出的值可能太长,你既然使用的是ACCESS数据库,那建议将保存该字段的类型设置为备注型,这样能存储更长的字符传.
在display.asp已经获取了eWebEditor编辑框框中的值,保存在了变量sContent了
要插入数据库的话,首先要做的就是让当前页面能够连接上数据库.请参看下面11中连接数据库的方法,选择合适你自己的数据库和方法:
1.Access数据库的DSN-less连接方法:
set adocon=Server.Createobject("adodb.connection")
adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _
Server.MapPath("数据库所在路径")
2.Access OLE DB连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _
"Data Source=" & Server.MapPath("数据库所在路径")
3.SQL server连接方法:
set adocon=server.createobject("adodb.recordset")
adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _
"database=数据库名;"
4.SQL server OLE DB连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _
"user ID=***;Password=***;"& _
"inital Catalog=数据库名"
5.Oracle 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"
6.Oracle OLE DB 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"
7.dBase 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=------------;"
8.mySQL 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={mysql};database=yourdatabase;
uid=username;pwd=yourpassword;option=16386;"
9.Visual Foxpro 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"
10.MS text 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=-----;"&_
"extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
11.MS text OLE DB 连接方法:
set adocon=Server.Createobject("adodb.connection")
adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_
"Extended Properties'text;FMT=Delimited'"
连接成功后使用插入语句添加记录Insert
Insert语法:
Insert into table(field1,field2,....) Values (value1,value2,....)
例子:添加一作者是"cancer"的记录入book表:
insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)
本人会JAVA,经常使用JSP,对ASP不太了解,但原理都是一样的,希望各位网友批评指正.
⑷ 在jsp中,如何将application对象的值赋给一个文本框
首先要获取 application的值必须是jsp页面
<input type="text" value="<%=application.getAttribute("name") %>">
<input type="text" value="<%=session.getAttribute("name") %>">
<input type="text" value="<%=request.getAttribute("name") %>">
这些都可以直接写,嵌在页面中就可以了,name是你要获取的变量名称
⑸ 怎么让textarea的宽度不能改变高度可以调整
可以给textarea加一个id这样可以实现单独改宽度如$("#aa")。css("width","300");也可以集体修改如$("textarea")。css("width","300"),这样会把所有的textarea的宽度都改为300。
style="resize:none;" 这样禁止拖拽改变大小。
style="max-width:500px,"这样宽度固定为500px。
textarea定义和用法:
标签定义多行的文本输入控件。
文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是Courier)。
可以通过cols和rows属性来规定textarea的尺寸,不过更好的办法是使用CSS的height和width属性。
在文本输入区内的文本行间,用"%OD%OA"(回车/换行)进行分隔;通过标签的wrap属性设置文本输入区内的换行模式。textarea标签是成对出现的,以开始,以结束。
定义一个文本区域(text-area)(一个多行的文本输入区域)。用户可在此文本区域中写文本。在一个文本区中,您可输入无限数量的文本。文本区中的默认字体是等宽字体(fixedpitch)。
属性。最常用的属性是cols和rows,用来规定textarea的尺寸。另外,还有其他一些属性如如下:
accesskey 规定访问元素的键盘快捷键。
class 规定元素的类名(用于规定样式表中的类)。
contenteditable 规定是否允许用户编辑内容。
contextmenu 规定元素的上下文菜单。
dir 规定元素中内容的文本方向。
draggable 规定是否允许用户拖动元素。
dropzone 规定当被拖动的项目/数据被拖放到元素中时会发生什么。
hidden 规定该元素是无关的。被隐藏的元素不会显示。
id 规定元素的唯一ID。
lang 规定元素中内容的语言代码。
spellcheck 规定是否必须对元素进行拼写或语法检查。
style 规定元素的行内样式。
tabindex 规定元素的tab键控制次序。
title 规定有关元素的额外信息。
Common--一般属性、cols--多行输入域的列数、rows--行输入域的行数、accesskey--表单的快捷键访问方式、disabled--输入域无法获得焦点,无法选择,以灰色显示,在表单中不起任何作用、readonly--输入域可以选择,但是无法修改、tabindex--输入域,使用"tab"键的遍历顺序。