JavaBean在JSP中的应用就是三个标签:
获取JavaBean的属性
在JavaBean中,为了防止外部直接对JavaBean属性的调用,通常将JavaBean中的属性设置为私有的(private),但需要为其提供公共的(public)访问方法,也就是getxxx()方法。
在jsp中可以使用Java代码创建JavaBean的实例对象,但是不推荐这样,为了降低耦合度,尽量使用
属性解释:
其中id属性可以理解为所创建的对象的名称,class属性可以理解为需要被创建对象的JavaBean类,两者组合在一起可以理解为“JavaBean类 对象名=new JavaBean类()”(特别注意:str2只能是遵循JavaBean规范的类,不可以是其它的类)
在jsp中也通常使用
属性解释:
其中property属性可以理解为JavaBean中的属性,name可以理解为JavaBean实例对象的名字,两者组合在一起相当于Java代码中的:“JavaBean类对象.getxxx()”,其中getxxx为JavaBean属性的获得方法。
实例如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> //Produce_Information.jsp<html><head><title>Title</title></head><body><jsp:useBean id="produce" class="com.wjh.Test.Produce"></jsp:useBean><!--该标签用于创建一个符合JavaBean规范的JavaBean实例对象,其中id属性是该对象的名称,class属性是被创建对象的类--><div style="width: 500px;height: 500px; margin: 0 auto; left: 250px;"><ul><li>商品名称:<jsp:getProperty name="produce" property="name"/></li><li>价格:<jsp:getProperty name="produce" property="price"/></li><li>数量:<jsp:getProperty name="produce" property="count"/></li><li>厂址:<jsp:getProperty name="produce" property="factoryAdd"/></li></ul></div ></body></html>
package com.wjh.Test;public class Produce { //一个符合JavaBean规范的类/*使用private对JavaBean的属性进行封装*/private String name="电池";private double price=199.99;private int count=100;private String factoryAdd="广州市番禺区";/*JavaBean的getxxx()方法使用public修饰,使得外部可以获取其私有属性*/public String getName() {return name;}public double getPrice() {return price;}public int getCount() {return count;}public String getFactoryAdd() {return factoryAdd;}}
对JavaBean属性赋值
在JavaBean中,不能通过使用“对象名.属性”直接对JavaBean属性赋值,因为它们一般都是被private修饰的,在jsp中一般使用
语法如下:
其中name属性可以理解为JavaBean对象名,property可以理解为JavaBean中的属性,两者组合在一起相当于Java代码中的“JavaBean对象.setxxx()”。
实例如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %> //Produce_Information对象<html><head><title>产品信息</title></head><body><jsp:useBean id="produce" class="com.wjh.Test.Produce"></jsp:useBean><!--该标签用于创建一个符合JavaBean规范的JavaBean实例对象,其中id属性是该对象的名称,class属性是被创建对象的类--><jsp:setProperty name="produce" property="name" value="小花花"></jsp:setProperty><jsp:setProperty name="produce" property="price" value="13.14"></jsp:setProperty><jsp:setProperty name="produce" property="count" value="520"></jsp:setProperty><jsp:setProperty name="produce" property="factoryAdd" value="广州市番禺区小谷围街道"></jsp:setProperty><!--该标签用于给已创建的JavaBean对象中的JavaBean属性赋值的--><div><ul><li>商品名称:<jsp:getProperty name="produce" property="name"/></li><li>价格:<jsp:getProperty name="produce" property="price"/></li><li>数量:<jsp:getProperty name="produce" property="count"/></li><li>厂址:<jsp:getProperty name="produce" property="factoryAdd"/></li></ul></div ></body></html>
package com.wjh.Test;public class Produce {/*使用private对JavaBean的属性进行封装*/private String name;private double price;private int count;private String factoryAdd;/*JavaBean中的getxxx()方法用public,可以使外部访问JavaBean中的属性*/public String getName() {return name;}public double getPrice() {return price;}public int getCount() {return count;}public String getFactoryAdd() {return factoryAdd;}/*JavaBean中的setxxx()方法用public,可以使外部的数据传进来给JavaBean属性赋值*/public void setName(String name) {this.name = name;}public void setPrice(double price) {this.price = price;}public void setCount(int count) {this.count = count;}public void setFactoryAdd(String factoryAdd) {this.factoryAdd = factoryAdd;}}
解决中文乱码问题
在jsp页面中,处理中文字符经常会因为字符编码的问题出现乱码,特别是通过表单(form标签)传递中文数据时容易产生,解决方法有很多,可以通过request设置字符集等等;但这里推荐使用一个方法来处理,使需要进行传输的字符串经过这个方法。
实例如下:
package com.wjh.Test;public class News {private String title;private String content;public News(){}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
package com.wjh.Test;import java.io.UnsupportedEncodingException;public class CharactorEncoding {public CharactorEncoding(){}public String toString(String str){String text="";if(str!=null&&!"".equals(str)){try {text=new String(str.getBytes("ISO-8859-1"),"UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return text;}}
<%@ page contentType="text/html;charset=UTF-8" language="java" %> //index.jsp<html><head><title>index</title></head><body><form action="release.jsp" method="post"><table align="center" width="450" border="1"><tr><td align="center" colspan="2" height="40"><b>新闻发布</b></td></tr><tr><td align="right">标题</td><td><input type="text" name="title" size="30"></td></tr><tr><td align="right">内容</td><td><textarea name="content" rows="8" cols="40"></textarea></td></tr><tr><td align="center" colspan="2"><input type="submit" value="发布"></td></tr></table></form></body></html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> //release.jsp<html><head><title>release</title></head><body><jsp:useBean id="news" class="com.wjh.Test.News"></jsp:useBean><jsp:useBean id="encoding" class="com.wjh.Test.CharactorEncoding"></jsp:useBean><jsp:setProperty name="news" property="*"></jsp:setProperty><div align="center"><div id="container"><div id="title"><%=encoding.toString(news.getTitle())%></div><hr><div id="content"><%=encoding.toString(news.getContent())%></div></div></div></body></html>
运行结果:

