JavaBean配置

2023-10-26

在JSP内嵌入大量的Java代码可能会造成维护不方便。为此最好的方就是把JSP代码和Java代码分开,将JSP中的Java代码移植到Java类中。这些可能用到的类就是JavaBean。

JavaBean实现步骤如下:
1.在src中新建一个beans包,建立相应的Java类,编写相应的JavaBean实例。
在这里插入图片描述

package lesour.beans;

public class Account {
	private String username;
	private String password;
	private String sex;
	public String getUserName() {
		return username;
	}
	public void setUserName(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}

}

2.在JSP中使用<jsp:useBean>标签来实例化JavaBean的对象。

<%@ page language="java" import="java.util.*" contentType="text/html; cahrset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="lesour.beans.Account" %>
<html>
<body>
<h2>Hello World!</h2>
<jsp:useBean id="account" class="lesour.beans.Account"></jsp:useBean>
<%
	account.setUserName("李华");
	account.setSex("男");
	account.setPassword("123456789");
%>

姓名:<%=account.getUserName() %><br>
性别:<%=account.getSex() %><br>
密码:<%=account.getPassword() %><br>
</body>
</html>

运行结果如下。
在这里插入图片描述
<jsp;useBean>的基本用法如下所示

<jsp:useBean id="IdName" class="package.class" scope="page|session|application..."></jsp:useBean>

id属性的作用是指定JavaBean对象的名称,类似于 Account account = new Account() 中的account。
class属性是指定用哪个类来实例化JavaBean对象。
scope属性是指定对象的作用范围,scope范围有以下几种选择。

范围 说明
page 只是在实例化的页面上可用,别的页面不可用
request 除了在实例化的页面上可用外,还可以在通过forward方法跳转的页面中被认识到
session 表示JavaBean可用存在session中,可以被同一个用户一次会话的所有页面识别到
application 表示JavaBean可用存在application中,可以被所有用户的所有页面识别到

使用<jsp:setProperty>设置JavaBean属性

<%
	account.setUserName("李华");
	account.setSex("男");
	account.setPassword("123456789");
%>

上面代码,这种方法设置JavaBean属性还是在JSP中使用Java代码。使用<jsp:setProperty>标签设置JavaBean属性的语法如下

<jsp:setProperty property="属性名称" name="bean对象名" value="常量"/>

如果<jsp:useBean>标签的scope属性是request,<jsp:setProperty>标签的语法如下

<jsp:setProperty property="属性名称" name="bean对象名" param="参数名"/>

上面的JSP代码还可以改为

<jsp:setProperty property="userName" name="account" value="李华"/>
<jsp:setProperty property="sex" name="account" value=""/>
<jsp:setProperty property="password" name="account" value="123456789"/>

注意:Bean属性名称是按照getter/setter来匹配的而且以小写字母开头,但是在getter和setter中显示为大写名称setUserName()、setSex()。
如果将上面代码第一行改为

<jsp:setProperty property="username" name="account" value="李华"/>

则会报错
在这里插入图片描述
除此之外

姓名:<%=account.getUserName() %><br>
性别:<%=account.getSex() %><br>
密码:<%=account.getPassword() %><br>

这段代码<%=account.getUserName() %>也属于Java代码,也可以<jsp:gettProperty>标签来分离JSP代码的Java代码。<jsp:getProperty>标签使用方法和<jsp:setProperty>标签类似。同样要注意属性的大小写。
最终JSP代码将改为

<%@ page language="java" import="java.util.*" contentType="text/html; cahrset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="lesour.beans.Account" %>
<html>
<body>
<h2>Hello World!</h2>
<jsp:useBean id="account" class="lesour.beans.Account"></jsp:useBean>

<jsp:setProperty property="userName" name="account" value="李华"/>
<jsp:setProperty property="sex" name="account" value=""/>
<jsp:setProperty property="password" name="account" value="123456789"/>

姓名:<jsp:getProperty property="userName" name="account"/><br>
性别:<jsp:getProperty property="sex" name="account"/><br>
密码:<jsp:getProperty property="password" name="account"/><br>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaBean配置 的相关文章

  • Hibernate中通过ID获取对象

    我注意到我们的高级开发人员使用以下代码通过 ID 检索实体 Override public Source get Long id Session session getSession if session null session sess
  • Java-Android 上的 MulticastSocket 问题

    我开始使用 MulticastSocket 进行编码 尝试制作一个带有客户端和服务器的简单应用程序来发送消息 我的服务器代码 import java io IOException import java net DatagramPacket
  • 使用 Spring 通过构造函数自动装配集合

    我有一个看似简单的问题 如标题所示 这是我的课程类型 public class Foo Autowired public Foo Qualifier bar Set
  • 正则表达式删除2个字符串之间的所有内容

    我的replaceAll 需要一个正则表达式来删除2 个字符串和字符串本身之间的所有内容 例如 如果我有类似的东西 stackoverflow is really awesome nremove123 n I love it 我试图做一个像
  • Java Swing - 在运行时动态切换语言环境

    我了解如何国际化 java 程序 但我有一个问题 我的程序中的语言可以随时切换 但我的程序可以存在多种状态 这意味着它可能会也可能不会打开多个 JLabels JPanel JFrame 等 是否有一个类或方法可以将当前的 GUI 更新为切
  • ffmpeg 用于屏幕捕获?

    所以我有一个小程序来捕获屏幕和计算机麦克风的声音 然后屏幕截图被编码为 ScreenVideo2 声音被编码为 AAC 如何使用 ffmpeg 逐帧混合 然后将混合输出发送到 wowza 媒体服务器 如果用ffmpeg无法完成 您能提供一些
  • 通过 jclouds 使用 AWS (S3) - 如何承担角色

    使用普通身份验证凭据时 我可以执行以下操作 ContextBuilder newBuilder aws s3 credentials keyId key buildView BlobStoreContext class 访问 S3 的 Bl
  • Java + JNA:找不到指定的过程

    我正在尝试使用 Visual Studio 创建一个 dll 文件并在 java 项目中使用 访问它 该库似乎已加载 但总是抛出相同的异常 线程 main 中出现异常 java lang UnsatisfiedLinkError 查找函数
  • Spring - 捕获bean创建异常

    我想在我的代码中捕获 bean 实例化异常 我有什么选择 一种方法是使用基于 Java 的容器配置 Configuration public class AppConfig Bean public SomeBean someBean try
  • ElasticSearch JavaAPI (SearchScroll)- search_context_missing_exception","re​​ason":"找不到 id 的搜索上下文

    我正在获取超过100k使用一个索引中的文档searchScroll并在所有字段中再添加一个字段100K文件 然后再次将这些文档插入到另一个新索引中 我正在使用SearchScrollapi 也在设置大小searchSourceBuilder
  • 将resourceBundle与外部文件java一起使用

    我一直在阅读有关此问题的其他问题和答案 但我不明白资源边界是如何完全工作的 我认为这与 Joomla 使用多语言选项的方式类似 基本上 您有要阅读的不同语言的不同消息的文件 所以我在 src Lang 文件夹中创建了 System prop
  • Hibernate + Oracle IN 子句限制,如何解决?

    我知道这个问题已经发了很多次了 但我想问一下细节 使用 Oracle 您不能向 IN 子句传递超过 1000 个参数 因此将 hibernate 与 Oracle 一起使用可能有一些解决此问题的方案 例如 1 对于每个 1000 个参数列表
  • 如何使用 Spring 状态机在状态转换期间引发异常

    我试图了解状态转换期间操作如何抛出异常 我配置了这个简单的状态机 transitions withExternal source State A1 target State A2 event Event E1 action executeA
  • 如何使用 Jersey 的内部路由机制来提取类/方法引用?

    我正在运行 Jersey 1 8 应用程序 Jersey 作为 Servlet 运行 我需要写一个小服务程序过滤器给定一个简单的请求 响应 能够确定哪个 REST 资源 方法将响应该请求并从注释中提取值 例如 假设我有以下资源 Path f
  • 关于 servlet 的简要想法[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从哪里可以获得有关 servlet 的知识 大多数人会从 Sun 的有关 servlet 的官方教程开
  • 如何在 Mulesoft 中将睡眠设置为流程而不丢失消息负载

    我想插入脚本来延迟 Mulesoft 中的处理流程 我尝试在 groovy 中插入脚本 但丢失了消息有效负载 因此当我必须获取消息有效负载时 收到了空指针 我怎样才能不丢失消息有效负载 Thanks 如果您正在使用Groovy流程中的组件
  • 使用 Android API 发布推文

    我一直在寻找一种使用 Android 应用程序发布推文的方法 但我发现的所有方法都不起作用 我不得不承认 Twitter 的 API 并不是那么容易理解 但是我的代码并不长 而且我看不出我的错误在哪里 这是我的代码 public class
  • Java Webstart 和 URLConnection 缓存 API

    的描述URLConnection 缓存 API http docs oracle com javase 6 docs technotes guides net http cache html最后一句指出 Java 2 标准版中没有 URLC
  • 解压缩 GZIP http 响应(使用 jersey 客户端 api、java)

    有人可以告诉我在从某些 Http 调用获取响应时需要做什么才能解压缩 GZIP 内容吗 为了进行调用 我使用 Jersey Client API 请参阅下面的代码 String baseURI http api stackoverflow
  • Java 将函数添加到 json 对象而不使用引号。

    我正在用 java 构建一个 json 对象 我需要将一个函数传递到我的 javascript 中并使用 jquery isFunction 对其进行验证 我遇到的问题是我必须将 json 对象中的函数设置为字符串 但 json 对象将周围

随机推荐

  • 解惑React之this.setState({ [name]: value })

    react之this setState name value 疑问 学习React中文官方文档中的非空组件与受控组件中 遇到如下代码 class Reservation extends React Component constructor
  • 【面试系列】重排链表

    题意 原题链接 思路 快慢指针找到中点 或者先遍历得到长度 再遍历一半也可行 反转后半部分 归并两部分 代码 Definition for singly linked list struct ListNode int val ListNod
  • Excel 解析,通过Excel的地址和MultipartFile进行解析

    目录 两种方法都用到了read 和getValue 方法对数据进行解析 只是二者传入的Excel数据格式不一样 第一种方法 通过Excel地址进行解析Excel的数据 第二种方法 解析Excel的MultipartFile数据流获取数据 H
  • mmocr 训练字符检测模型

    目录 1 数据集 2 config文件配置 3 测试模型 1 数据集 这里以icdar2015字符检测为例https blog csdn net jizhidexiaoming article details 124149164 spm 1
  • Visio 2007/2010 左侧"形状"窗口管理

    Visio 2007 2010 左侧 形状 窗口管理 Visio 打开后 通常窗口左侧会有一个 形状 面板 我们可以方便地从中选择需要的形状 有时为了获得更大的版面空间或者不小心关闭了形状面板 怎么把它重新调出来 我们可以从 视图 中把它找
  • 使用docker快速搭建服务器环境

    思路 将nginx mysql tomcat等环境打包为一个个docker 然后使用docker compose管理 服务器内安装docker相关环境 然后直接运行docker compose配置 即可快速搭建完成服务器环境 之后可以将相关
  • Markdown / KaTex数学公式汇总

    目录 LaTex和KaTex 软件推荐 Mathpix 一 如何插入公式 二 上下标 三 常用运算符 四 高级运算符 五 常用数学符号 六 特殊符号 6 1 箭头 6 2 公式序号 七 括号使用 八 矩阵 九 集合运算 十 希腊字母 十一
  • 使用反射实现动态修改@Excel的注解属性

    业务场景 我们使用poi实现数据导出时 通常是根据 Excel name xxx 来确定列名 通常情况下这个是不会发生变动的 但这里就说少数情况 在我们需要这里根据某些情况来进行改变的时候 我们就需要用到反射 AirQualityRanki
  • Java反射(自己的理解)

    动态语言 运行是代码可以根据某些条件改变自身结构 像js和php python等 但是我们不像c 是一门静态语言 可以准确的说我们是一门准动态语言 因为反射让我们具有动态性 我来直接用我所理解的反射给大家先讲一下大概 这绝对让你的耳目一新
  • 五、单向散列函数

    单向散列函数 获取消息的指纹 当需要比较两条消息是否一致时 我们不必直接对比消息本身的内容 只要对比它们的 指纹 就可以了 单向散列函数 one wayftnction 有一个输人和一个输出 其中输人称为消息 message 输出称为散列值
  • 全国大学生数字建模竞赛、中国研究生数学建模竞赛(数学建模与计算实验)前言

    1 什么是数学建模 2 所需要学的知识 知识算法分类表格汇总 3 所需要的软件工具 4 论文模板 查找文献 查找数据 一 什么是数学建模 全国大学生数字建模竞赛 National College Student Mathematical M
  • HashMap源码初探

    Hash table based implementation of the Map interface This implementation provides all of the optional map operations and
  • Qt动态库加载之 QLibrary

    目录 一 使用Qt编译C动态库 二 使用QLibrary调用共享库 一 使用Qt编译C动态库 使用Qt新建一个C项目 cbb frame 在项目中我们声明和定义两个函数 并导出函数 在cbb mylog中我们使用了函数指针 这里为啥这样干
  • python人脸识别考勤系统 dlib+OpenCV和Pyqt5、数据库sqlite 人脸识别系统 计算机 毕业设计 源码

    一 项目介绍 Python语言 dlib OpenCV Pyqt5界面设计 sqlite3数据库 本系统使用dlib作为人脸识别工具 dlib提供一个方法可将人脸图片数据映射到128维度的空间向量 如果两张图片来源于同一个人 那么两个图片所
  • hrformer

    High Resolution Transformer Copyright c 2021 Microsoft Licensed under The MIT License see LICENSE for details Written by
  • keepalived 实现双机热备

    文章目录 一 说明 二 概念解释 三 环境准备 四 操作过程 五 验证 一 说明 我们经常听说 nginx keepalived 双机热备 其实在这里 双机热备有两种思路 一是只利用 keepalived 实现两个节点的故障切换 当主节点挂
  • 章节二:Vue.js的安装和配置

    2 1 下载和安装Vue js 要下载和安装Vue js 你有几个选项可供选择 通过CDN 在HTML文件中引入Vue js的CDN链接 然后直接使用Vue全局变量 使用包管理器 使用npm或yarn等包管理器 在项目中安装Vue js 下
  • 一文搞懂IP基础以及子网划分!!!!!

    1 什么是IP地址 IP地址 Internet Protocol Address 互联网国际地址 是一种在Internet上的给主机编址的方式 它主要是为互联网上的每一个网络和每一台主机分配一个逻辑地址 以此来屏蔽物理地址的差异 IP地址就
  • Reactjs鼠标滚轮监听

    1 添加相应的react所需的包及插件 npm install react s npm install react dom s 2 鼠标滚轮事件及引用子组件的滚轮处理事件 handleWheel function event 判断鼠标滚轮的
  • JavaBean配置

    在JSP内嵌入大量的Java代码可能会造成维护不方便 为此最好的方就是把JSP代码和Java代码分开 将JSP中的Java代码移植到Java类中 这些可能用到的类就是JavaBean JavaBean实现步骤如下 1 在src中新建一个be