属性表达式
使用字符串名称来读取或设置对象属性的方式,使用“.”表示子属性,使用“[]”表示数组、图或者集合索引属性。
功能
支持多级属性
支持数组和容器索引属性
支持范型
支持字符串自动解析属性赋值
支持字符数组属性赋值
基本属性
子属性
数组属性
容器属性
图属性
复杂范型
字符串赋值
字符数组赋值
字符数组容器赋值
表单解析
HTML表单
Java Bean
解析
源代码
见附件
使用字符串名称来读取或设置对象属性的方式,使用“.”表示子属性,使用“[]”表示数组、图或者集合索引属性。
功能
支持多级属性
支持数组和容器索引属性
支持范型
支持字符串自动解析属性赋值
支持字符数组属性赋值
基本属性
public class Person { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } } public class PersonSample { public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "value", 123); System.out.println(bean.getValue()); } }
子属性
public class Person { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } private Person parent; public Person getParent() { return parent; } public void setParent(Person parent) { this.parent = parent; } } public class PersonSample { public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "parent.parent.value", 123); System.out.println(bean.getParent().getParent().getValue()); } }
数组属性
public class Person { private int[] values; public int[] getValues() { return values; } public void setValues(int[] values) { this.values = values; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "values[0]", 123); Property.setProperty(bean, "values[3]", 456); System.out.println(bean.getValues().length); for (int i = 0;i < bean.getValues().length;i ++) { System.out.println(bean.getValues()[i]); } System.out.println(Property.getProperty(bean, "values[3]")); } }
容器属性
public class Person { private ArrayList<String> values; public ArrayList<String> getValues() { return values; } public void setValues(ArrayList<String> values) { this.values = values; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "values[0]", "123"); Property.setProperty(bean, "values[3]", "456"); System.out.println(bean.getValues().size()); for (int i = 0;i < bean.getValues().size();i ++) { System.out.println(bean.getValues().get(i)); } System.out.println(Property.getProperty(bean, "values[3]")); } }
图属性
public class Person { private HashMap<String, Double> values; public HashMap<String, Double> getValues() { return values; } public void setValues(HashMap<String, Double> values) { this.values = values; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "values[abc]", 123.123); Property.setProperty(bean, "values[def]", 456.456); System.out.println(bean.getValues().size()); Set<String> keys = bean.values.keySet(); for (String key : keys) { System.out.println(bean.values.get(key)); } System.out.println(Property.getProperty(bean, "values[abc]")); } }
复杂范型
public class Person { private double value; private Person parent; private LinkedList<ArrayList<HashMap<Date, Person[][]>>>[] values; public LinkedList<ArrayList<HashMap<Date, Person[][]>>>[] getValues() { return values; } public void setValues(LinkedList<ArrayList<HashMap<Date, Person[][]>>>[] values) { this.values = values; } public Person getParent() { return parent; } public void setParent(Person parent) { this.parent = parent; } public double getValue() { return value; } public void setValue(double value) { this.value = value; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setProperty(bean, "values[0][1][2][2012-04-27][3][4].parent.value", 123.456); Property.setProperty(bean, "values[0][1][3][2012-04-27][4][5].parent.value", 456.789); System.out.println(Property.getProperty(bean, "values[0][1][2][2012-04-27][3][4].parent.value")); Date dt = Property.toDate("2012-04-27"); System.out.println(bean.values[0].get(1).get(2).get(dt)[3][4].parent.value); System.out.println(Property.getProperty(bean, "values[0][1][3][2012-04-27][4][5].parent.value")); } }
字符串赋值
public class Person { private int value; public int getValue() { return value; } public void setValue(int value) { this.value = value; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setValue(bean, "value", "123"); System.out.println(bean.value); System.out.println(Property.getProperty(bean, "value")); Property.setValue(bean, "value", new String[]{"456", "789"}); System.out.println(bean.value); } }
字符数组赋值
public class Person { private double[] values; public double[] getValues() { return values; } public void setValues(double[] values) { this.values = values; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setValue(bean, "values", new String[]{"123.456", "456.789", "789.012"}); System.out.println(bean.values.length); System.out.println(bean.values[1]); System.out.println(Property.getProperty(bean, "values[0]")); System.out.println(Property.getProperty(bean, "values[1]")); System.out.println(Property.getProperty(bean, "values[2]")); } }
字符数组容器赋值
public class Person { private ArrayList<Boolean> values; public ArrayList<Boolean> getValues() { return values; } public void setValues(ArrayList<Boolean> values) { this.values = values; } public static void main(String ... args) throws Throwable { Person bean = new Person(); Property.setValue(bean, "values", new String[]{"1"}); System.out.println(bean.values.size()); System.out.println(Property.getProperty(bean, "values[0]")); Property.setValue(bean, "values", new String[]{"1", "0", "true", "false"}); System.out.println(bean.values.size()); System.out.println(Property.getProperty(bean, "values[0]")); System.out.println(Property.getProperty(bean, "values[1]")); } }
表单解析
HTML表单
<form method="POST" action="myAction.do"> <!-- 基本属性 --> <input type="text" name="user"> <input type="password" name="pwd"> <!-- 同名复选框,映射到Java Bean的数组 --> <input type="checkbox" name="fruits" value="apple"> <input type="checkbox" name="fruits" value="orange"> <input type="checkbox" name="fruits" value="banana"> <input type="checkbox" name="fruits" value="mango"> <!-- 多选子属性,映射到Java Bean的ArrayList --> <input type="text" name="children[0].user"><input type="password" name="children[0].pwd"> <input type="text" name="children[1].user"><input type="password" name="children[1].pwd"> <input type="text" name="children[2].user"><input type="password" name="children[2].pwd"> <input type="submit" value="提交"> </form>
Java Bean
public class Person { private String name; private String pwd; private String[] fruits; private ArrayList<Person> children; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String[] getFruits() { return fruits; } public void setFruits(String[] fruits) { this.fruits = fruits; } public ArrayList<Person> getChildren() { return children; } public void setChildren(ArrayList<Person> children) { this.children = children; } }
解析
Enumeration<String> iter = (Enumeration<String>)request.getParameterNames(); Person bean = new Person(); while(iter.hasMoreElements()) { String key = iter.nextElement(); String[] values = request.getParameterValues(key); Property.setValue(bean, key, values); }
源代码
见附件
- property.zip (11.9 KB)
- 描述: 源代码和文档
- 下载次数: 68
相关推荐
### XMLBean:轻松读写XML的强大工具 #### 一、XML的重要性与挑战 XML(Extensible Markup Language,可扩展标记语言)作为一种通用的数据格式,在Java应用程序中扮演着日益重要的角色。它广泛应用于数据存储和...
JavaBean是Java编程中的一种设计模式,它代表一个对象,通常包含公共属性和方法,便于数据的封装和操作。在处理大量JSON数据时,手动创建对应的JavaBean类会非常耗时,因此出现了“根据json串自动生成JAVA BEAN工具...
《利用XMLBean轻轻松松读写XML-入门教程》 一、XML的重要性与解析方法 在现代软件开发中,XML(可扩展标记语言)扮演着举足轻重的角色,尤其是在数据存储与交换方面。XML因其良好的结构化特性,被广泛应用于配置...
6. **实例分析**:在"XMLBeanTest2"这个文件中,很可能包含了一个演示如何使用XMLBean进行读写操作的Java程序。它可能包括了加载XSD,生成Java类,创建并填充对象,以及保存和读取XML文件的代码。通过研究这个示例,...
XMLBean是Apache软件基金会开发的一个Java库,它提供了一种高效、方便的方式来处理XML文档,包括XML的读取和写入。XMLBean是基于JavaBeans的,它将XML文档映射到Java对象,使得XML数据的操作更加直观和简单。本文将...
Java Bean是一种遵循特定规范的Java类,它具有可读写的属性、无参数的构造器以及用于序列化和属性改变的通知方法,通常用于组件开发。 描述中提到的"用于实现JAVA树结构的BEAN"进一步强调了这个Java Bean是专门设计...
这里的“java (bean) 生成图片”是指利用Java的类库和设计模式,如JavaBeans,来创建和操作图像。我们将深入探讨这个主题,首先了解JavaBeans规范,然后讨论如何使用Java生成图片,最后分析给定的两个源代码文件`...
在压缩包子文件的文件名称列表中,"FieldToRead--属性读写"可能表示的是一个实现此功能的具体文件,或者是一个示例,用于展示如何读取数据库字段并生成Java属性的读写方法。该文件可能是代码示例、配置文件或者是...
它使用反射机制实现,通过getter和setter方法进行属性的读写。其优点在于简单易用,但缺点是在大量复制操作时性能较低,因为每次复制都需要进行反射调用。 PropertyUtils是Apache Commons BeanUtils的扩展,它增强...
- **set和get方法**:通过JSP表达式或脚本元素调用JavaBean的setter和getter方法,进行数据的读写。 - **动作指令**:如`jsp:setProperty`和`jsp:getProperty`,用于设置和获取JavaBean的属性值。 **4. 数据库连接...
3. **属性**:Java Beans的属性是其内部状态的表示,可以通过getter和setter方法进行读写。属性通常具有名称、类型和默认值。 4. **事件**:Java Beans可以发送和接收事件。事件处理允许组件之间进行通信,例如按钮...
在Java中,XML的处理分为解析、创建、修改和读写等关键操作。 首先,让我们深入了解XML的基本结构。XML文档由元素(Element)、属性(Attribute)、文本内容(Text Content)和注释(Comment)组成。元素是XML的...
1. 创建一个Java Bean类,定义其属性和getter/setter方法。 2. 使用`@XmlRootElement`注解标记Bean类,表示它是XML文档的根元素。 3. 对Bean类的属性使用`@XmlElement`注解,指示它们应被序列化为XML元素。 4. 调用...
在Java编程中,JavaBean是一种遵循特定规范的Java类,通常用于封装数据并提供属性访问。在本案例中,"Java使用JavaBean封装和连接URL"涉及到如何利用JavaBean来处理网络请求,尤其是通过URL来获取网络资源。下面将...
在XML数据绑定中,Java Bean充当了数据模型的角色,其属性对应于XML文档中的元素或属性。 JAXB的核心功能包括: 1. **序列化**:将Java对象转换为XML文档。通过JAXBContext实例,我们可以获取Marshaller对象,然后...
假设我们有一个Java Bean类`DataBean`,包含与CSV或Excel列名相对应的属性,我们可以创建一个静态方法,接收字符串数组作为参数,然后使用`Field`的`set()`方法将值赋给对应的属性。 ```java public static ...
- **属性和访问方法**:Bean的属性应私有化,通过getter和setter方法公开属性的读写操作。例如,属性名为`age`,对应的getter方法是`getAge()`,setter方法是`setAge(int age)`。 - **包命名**:Bean类应该放在一个...
例如,Java中的`java.io`包提供了`File`类用于文件的创建、删除和重命名,而`BufferedReader`和`BufferedWriter`则用于文本文件的读写。 2. **数据解析**:数据解析是将文件内容转换为可操作结构的过程。这可能涉及...
Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,...