JSP和JavaBean可以互相调用其中的内容。现在我们实现一个最简单的JSP与JavaBean。
我们实现一个输入文字,将文字传给JavaBean,然后再让JavaBean返回内容给JSP的功能。我们需要一个JSP文件,一个JavaBean。
JavaBean文件
在scr目录下新建一个名为packagemane的包,在这个包下面新建一个java文件,BeanName.java(文件名任意)
代码如下:
package packagename;
public class BeanName {
String ProName;
//参数名必须和jsp:setProperty中property,param的值相同。
//JavaBean中有一个set方法,一个get方法。注意方法名和参数名的关系,注意方法返回值的对应。
public void setProName(String proName){
this.ProName = proName;
}
public String getProName(){
String newStr="你输入了:"+ProName;
return newStr;
}
}
JSP文件
在WebRoot或其子目录下新建一个jsp文件,名字任意。
里面的代码如下:
比较关键的地方有三个:
1、useBean。
定义Bean的名称。后面setProperty和getProperty的名称要和这个保持一致。
2、setProperty
用于将网页上面的内容传给JavaBean.setProperty有好几种方法,这里随便用了一种。
关于property和param的值,建议相同。其实我现在还没搞清它们到底和后面的哪个对应。
特别需要注意的是
这个值一定要和JavaBean文件中的参数名相同。比如我这里写的是proName,JavaBean里面的参数是String ProName。
3、getProperty
用于将JavaBean中的内容传给网页。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("UTF-8");%>
<%response.setCharacterEncoding("UTF-8");%>
<%--强力防中文乱码--%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>最简单的JSP和JavaBean</title>
<jsp:useBean id="entityName" scope="page" class="packagename.BeanName"></jsp:useBean>
<!--scope的参数有四种:page,request,session,application
class的值为包名.Bean的文件名 -->
<jsp:setProperty name="entityName" property="proName" param="proName"/>
<!-- setProperty是将JSP网页的参数传给JavaBean,getProperty则是将JavaBean的参数传给JSP页面
为避免混乱property和param最好相同。并且该值也必须和Bean文件中的参数名相同。 -->
</head>
<body>
<form name="form1" action="" method="post">
在这里输入传给JavaBean的内容:<br>
<input type="text" name="proName"/>
<input type="submit" name="T1" value="提交"/>
<br>
</form>
下面显示的是从JavaBean返回的内容:<br>
<jsp:getProperty name="entityName" property="proName" />
</body>
</html>
实现效果
输入前
提交后