前提・実現したいこと
Javaとstruts2を使い、趣味でアプリケーションを製作しております。
現在、キーワードやカテゴリーで絞り込める検索機能を追加しようと思っているのですが、
コードを考えたところ、冗長的なものとなってしまいました。
もっと簡潔にするためにはどうすればいいかアドバイスをいただけないでしょうか。
【画面仕様】
キーワード入力欄(以降A)が1つ、カテゴリーを絞る2つのセレクトボックス(以降B,C)があります。
キーワードもカテゴリーも文字列で受け取ります。(空文字列で初期化してあります)
DBに接続するメソッドはA,B,Cを引数に実行されます。
検索パターンは【A】【B】【C】【A,B】【A,C】【A,B,C】【B,C】の7通りで、
条件によってSQLを変更しております。
※コードというよりももっと根本的な見直しが必要なのかもしれませんが、今回は上記の条件でお願いします。
※setter,getterは省略しています。
該当のソースコード
public class SearchAction extends ActionSupport{
private String A = "";
private String B = "";
private String C = "";
public String execute(){ if(B.isEmpty() && C.isEmpty()){ //Aのみで検索 return SUCCESS; } if(A.isEmpty() && C.isEmpty()){ //Bのみで検索 return SUCCESS; } if(A.isEmpty() && B.isEmpty()){ //Cのみで検索 return SUCCESS; } if(C.isEmpty()){ //ABのみで検索 return SUCCESS; } if(B.isEmpty()){ //ACのみで検索 return SUCCESS; } if(A.isEmpty()){ //BCのみで検索 return SUCCESS; } if(!(A.isEmpty() && B.isEmpty() && C.isEmpty())){ //ABCで検索 return SUCCESS; } return SUCCESS; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。