У меня проблемы с определением (хотя я знаю, что это не сложно).
У меня 5 выпадающих страниц на странице jsp. Событие onChange каждого выпадающего меню вызывает одно и то же действие.В файле действий я хочу узнать, какой из 5 выпадающих списков был изменен (что вызвало событие onChange).
Я знаю, что это может быть чертовски просто, но я не могу это сделать.Пожалуйста, совет.
Это jsp, содержащий выпадающие списки:
<s:form action="viewDayReport" id="dayReport">
<s:select label="Customer " name="customer" headerKey="0" headerValue="Select" list="customerList" onchange="dojo.event.topic.publish('getLists');dojo.event.topic.publish('getDayReports');"/>
<s:select label="Contact " name="contact" headerKey="0" headerValue="Select" list="contactList" onchange="dojo.event.topic.publish('getLists');dojo.event.topic.publish('getDayReports');"/>
<s:select label="Employee " name="employee" headerKey="0" headerValue="Select" list="employeeList" onchange="dojo.event.topic.publish('getLists');dojo.event.topic.publish('getDayReports');"/>
<s:select label="Stage " name="stage" headerKey="0" headerValue="Select" list="stageList" onchange="dojo.event.topic.publish('getLists');dojo.event.topic.publish('getDayReports');"/>
<s:select label="Type " name="type" headerKey="0" headerValue="Select" list="typeList" onchange="dojo.event.topic.publish('getLists');dojo.event.topic.publish('getDayReports');"/>
<sd:datetimepicker label="Date" name="date" displayFormat="dd/MM/yyyy"/>
<%--<s:reset value="Reset"/>--%>
<%--<s:submit value="View Report(s)"/>--%>
</s:form>
В случае, если я пропустил любую информацию, пожалуйста, сообщите.
Спасибо
Kanishk
Редактировать:
Это текущая форма, содержащая 5 выпадающих списков
<s:form action="viewDayReport" id="dayReport">
<s:select label="Customer " name="customer" headerKey="0" headerValue="Select" list="customerList" onchange="dojo.event.topic.publish('getLists');dojo.query('which').attr('value','customer');"/>
<s:select label="Contact " name="contact" headerKey="0" headerValue="Select" list="contactList" onchange="dojo.event.topic.publish('getLists');"/>
<s:select label="Employee " name="employee" headerKey="0" headerValue="Select" list="employeeList" onchange="dojo.event.topic.publish('getLists');"/>
<s:select label="Stage " name="stage" headerKey="0" headerValue="Select" list="stageList" onchange="dojo.event.topic.publish('getLists');"/>
<s:select label="Type " name="type" headerKey="0" headerValue="Select" list="typeList" onchange="dojo.event.topic.publish('getLists');"/>
<sd:datetimepicker label="Date" name="date" displayFormat="dd/MM/yyyy"/>
<s:hidden id="which"/>
<%--<s:reset value="Reset"/>--%>
<%--<s:submit value="View Report(s)"/>--%>
</s:form>
В файле действий (я сокращаю длинный код и показываю, чторелевантно):
public class getLists extends ActionSupport {
private String which;
public String getWhich() {
return which;
}
public void setWhich(String which) {
this.which = which;
}
private String customer;
public String getCustomer() {
return customer;
}
public void setCustomer(String customer) {
this.customer = customer;
}
//other variables and functions
@Override
public String execute(){
System.out.println("getlists:"+which);
System.out.println("getlists:"+customer);
//other function calls
return "success";
}
}
Переменная customer печатается нормально, а переменная - нет.
В обработке тем все, что я сделал, это называется действием.Это код:
<s:url id="scriptURL" action="getLists" />
<sd:div href="%{scriptURL}" listenTopics="getLists" formId="dayReport" showLoadingText="false" preload="false"></sd:div>
Аналогично для 2-й темы.
В том, что вы сказали, не могли бы вы объяснить, что делает следующий код:
dojo.query('#which').attr('value', s);
А как мне получить доступ к "значению" в файле действий?