2013-03-20 150 views
0

我的表单包含6个领域:FNAME,LNAME,MNAME,年龄,性别,SAL动态搜索表单

我们不能指望用户将完成所有的输入。有时他只完成3次输入,有时4次,有时只完成1次,有时完成,我们无法预测它。

我有一个雇员bean拥有所有6个属性值。

我想用用户提供的所有给定输入来搜索此雇员bean。这意味着我需要动态识别哪个吸气剂用于比较。如果用户只输入了3个输入,那么我只需要使用相应的获取器进行比较。

+1

那么你的问题是什么? [你有什么尝试?](http://www.whathaveyoutried.com) – 2013-03-20 13:34:00

+0

你的问题是什么?你写的东西听起来像是一个分配描述。你想让我们给你一个答案或做你的工作吗?问一个问题。告诉我们你试过了什么,什么没有奏效。 – ITroubs 2013-03-20 13:34:22

+0

你已经做了什么? – Averroes 2013-03-20 13:34:46

回答

1

您可以使用反射。例如,如果您的用户的年龄和性别为年龄,您应该调用getAge()getSex(),并将它们与给定值进行比较。要撰写吸气名称使用如下代码:

String getterName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);

现在你可以调用它:

String value = String.valueOf(Person.getCalss().getMethod(getterName).invoke(person));

现在只要与给定值进行比较。

您还可以使用为您简化bean访问的库。例如来自雅加达项目的BeanUtils

+0

谢谢你,先生,你帮了我很多。我是一个新手,我不知道这种方法。现在我明白了。再次感谢你 – 2013-03-22 13:30:06

0

你可以使用像Hamcrest Matchers这样的东西。例如:

String MATCH_ANY = "matchany83102176193580"; 

... 

if (mName.equals(search.mName) || mName.equals(MATCH_ANY))