У меня есть пользовательский интерфейс, который печатает пользователя, и я не хочу иметь фильтр по стране.
Я сделал классический <select />
элемент.
В JSP у меня есть
<select id="country" onchange="return filter();">
<option value="">...</option>
<c:forEach var="country" items="${countries}">
<option value="${country.id}"
${country.name}
</option>
</c:forEach>
</select>
Дело в том, что у некоторых пользователей нет страны, поэтому мне нужно разобраться с двумя фильтрами:
- тот, который печатает весь пользователь, без фильтра
- тот, который печатает только пользователей, у которых нет страны
Так что мне интересно, как лучше всего сказать Java: «найди всех пользователей» и «найди всех пользователей, у которых нет страны».
У меня есть идея: если countryId = 0, сервер переводит его как «пользователи, у которых нет страны, а если countryId = null, сервер переводит это как« все пользователи ».
В конце объект DAO сделает запрос, подобный
public List<User> findByCountry(Integer countryId){
query = "select * from users"
if(countryId==0){
query+= " where country_id is null"
}
else if(countryId==null){
query += " where country_id = " + countryId;
}
return query results...
}
Так это нормально, или это уродливо, или у кого-то есть лучший способ сделать это?