Оператор фильтра запросов хранилища данных не работает?

#jsp #google-app-engine #google-cloud-datastore

#jsp #google-app-engine #google-cloud-хранилище данных

Вопрос:

здесь запрос хранилища данных, который работает нормально

 <% 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("EventsDetail");
%>
  

здесь форма выбора опции

 <form action="EventsPortal.jsp" method="get" id="select-cat" >
<select name="scategory" onchange="this.form.submit();">
<option>Select Category</option>
<option>Educational</option>
<option>Arts</option>
<option>Party and Entertainment</option>
</select
</form>
  

здесь я добавил запрос фильтра в соответствии с опцией выбора

 <c:choose>
<c:when test="${param.scategory == 'Educational'}">
<% query.addFilter("Category", FilterOperator.EQUAL,Educational); %>
</c:when>
<c:when test="${param.scategory == 'Arts'}">
<% query.addFilter("Category", FilterOperator.EQUAL,Arts); %>
</c:when>
<c:when test="${param.scategory == 'Party and Entertainment'}">
<% query.addFilter("Category", FilterOperator.EQUAL,Entertainment); %>
</c:when>
<c:otherwise>
<h2>Latest Events</h2>
</c:otherwise>
</c:choose>
  

ошибка показывает, что образовательные, художественные, развлекательные программы не могут быть разрешены.

Ответ №1:

В вашем коде нет переменных для образовательных, художественных и развлекательных программ. Вы должны использовать:

 <% query.addFilter("Category", FilterOperator.EQUAL, "Educational"); %>
  

если вы установите для свойства «Категория» строковое значение «Образовательный».