2013-03-20 71 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))