动态搜索表单给出了集合的输入值的数量

时间:2013-03-20 13:30:51

标签: java

我的表单包含6个字段:fName,lName,mName,age,sex,sal

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

我有一个员工bean,它包含所有6个带值的属性。

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

2 个答案:

答案 0 :(得分:1)

您可以使用反射。例如,如果您的用户使用年龄和性别,则应调用getAge()getSex()并将其与给定值进行比较。要编写getter名称,请使用以下代码:

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

现在你可以调用它:

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

现在只需将它与给定值进行比较。

您还可以使用简化bean访问的库。例如来自jakarta project的BeanUtils

答案 1 :(得分:0)

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

String MATCH_ANY = "matchany83102176193580";

...

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