使用 struts2 从动态创建的下拉列表中选择值后如何调用操作
How to call action after selecting values from dynamically created dropdown list using struts2
这里我使用 link 创建了动态下拉列表,但是当我 select 可用列表中的某个值时,应该在操作中调用它 class。
可以在图像中看到的下拉列表,这里的值是从数据库动态加载的,现在我想要的是当我 select 两个下拉列表中的任何值时,值(我的意思是文本值)应该是发送到操作 class,然后我将根据这两个值执行一个 JDBC select 查询,并将显示在图像中显示的 table 中,但一切都应该在 load.Action 上应该在下拉列表中的 selecting 值上,而不是在任何按钮上单击。使用静态值,我可以将下拉列表中的值调用为 class 和 name
attribute.But 在这种情况下我不能:(
我希望我现在清楚了。
我尝试使用列表键、名称和 ID 调用 select 标签,但 none 成功了。
下面是我的 JSP 代码:
<div>
<div class="invoicetext1">Event Name :</div>
<s:select name="dp.eventState"
list="%{state}"
class="billlistbox1"
id="eventName" />
<div>
<s:select name="dp.companyState"
class="billlistbox2"
listKey="companyState"
list="%{status}">
</s:select>
</div>
<div class="invoicetext2">Company Name :</div>
<div class="clear"></div>
</div>
<s:form action="ActionSelect">
<s:submit value=" Click Here"/>
</s:form>
<div>
用于加载动态下拉列表的操作 class:
package com.ca.actions;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.ca.database.Database;
import com.ca.pojo.Event;
import java.sql.PreparedStatement;
import com.opensymphony.xwork2.ActionSupport;
public class RetrieveEvNaCoNaAction extends ActionSupport {
private static final long serialVersionUID = -5418233715172672477L;
List<Event> dataForBillsJspList;
private List state = new ArrayList();
private List status = new ArrayList();
String eventName;
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public RetrieveEvNaCoNaAction() {
// TODO Auto-generated constructor stub
}
public List<Event> getDataForBillsJspList() {
return dataForBillsJspList;
}
public void setDataForBillsJspList(List<Event> dataForBillsJspList) {
this.dataForBillsJspList = dataForBillsJspList;
}
public List getStatus() {
return status;
}
public void setStatus(List status) {
try {
Database database = new Database();
Connection con = database.Get_Connection();
PreparedStatement ps = con
.prepareStatement("SELECT EVENT_NAME,COMPANY_NAME,date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom,date_format(TO_DATE,'%d/%m/%Y') as dateAsTo FROM EVENT");
ResultSet rs = ps.executeQuery();
//dataForBillsJspList = new ArrayList<Event>();
while (rs.next()) {
/*dataForBillsJspList.add(new Event(rs.getString("EVENT_NAME"),
rs.getString("COMPANY_NAME"), rs
.getString("dateAsFrom"), rs
.getString("dateAsTo")));
System.out.println(rs.getString("EVENT_NAME"));*/
status.add(rs.getString("COMPANY_NAME"));
}
System.out.println("Data Collected ...");
}catch(Exception e)
{
e.printStackTrace();
}
}
public List getState() {
return state;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
setState(this.state);
setStatus(this.status);
return "success";
}
public String showEventDetails(){
System.out.println("Hi.."+eventName);
return SUCCESS;
}
public void setState(List state) {
//implement the application specific logic to
try {
Database database = new Database();
Connection con = database.Get_Connection();
PreparedStatement ps = con
.prepareStatement("SELECT EVENT_ID,EVENT_NAME,COMPANY_NAME,CONTACT_PERSON,CONTACT_NO,EMAIL_ID,EVENT_VENUE,date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom,date_format(TO_DATE,'%d/%m/%Y') as dateAsTo ,EVENT_TIME FROM EVENT");
ResultSet rs = ps.executeQuery();
dataForBillsJspList = new ArrayList<Event>();
while (rs.next()) {
dataForBillsJspList.add(new Event(rs.getString("EVENT_ID"),rs.getString("EVENT_NAME"),
rs.getString("COMPANY_NAME"),rs.getString("CONTACT_PERSON"),rs.getString("CONTACT_NO"),rs.getString("EMAIL_ID"),rs.getString("EVENT_VENUE"), rs
.getString("dateAsFrom"), rs
.getString("dateAsTo"),rs.getString("EVENT_TIME")));
//System.out.println(rs.getString("EVENT_NAME"));
state.add(rs.getString("EVENT_NAME"));
System.out.println(rs.getString("EVENT_ID"));
}
System.out.println("Data Collected ...");
}catch(Exception e)
{
e.printStackTrace();
}
//Here for displaying the data on UI, we are using few hardcoded values//
}
}
现在加载动态下拉列表后,我试图通过 S.O.P 调用 selected 值 class,但它给出了空指针异常。下面是我的 POJO class:
package com.ca.pojo;
public class Dropdown
{
private String eventState;
private String companyState;
public Dropdown() {
// TODO Auto-generated constructor stub
}
public String getEventState() {
return eventState;
}
public void setEventState(String eventState) {
this.eventState = eventState;
}
public String getCompanyState() {
return companyState;
}
public void setCompanyState(String companyState) {
this.companyState = companyState;
}
}
下面是操作 class,我试图通过使用名称属性调用 selected 值:
package com.ca.actions;
import com.ca.pojo.Dropdown;
import com.opensymphony.xwork2.ActionSupport;
public class DropdownAction extends ActionSupport
{
Dropdown dp;
public DropdownAction() {
// TODO Auto-generated constructor stub
}
public Dropdown getDp() {
return dp;
}
public void setDp(Dropdown dp) {
this.dp = dp;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(dp.getEventState());
return "success";
}
}
struts.xml 已正确配置。现在 selecting 两个值后我想相应地在下面 table 中显示数据而无需单击任何按钮但是在 jsp 中我创建了按钮只是为了看看我是否得到 selected 值在行动 class 但实际上我想要它而无需单击任何按钮。
使用Javascript/jQuery你可以做到这一点,这取决于你在达到行动后想做什么class。
如果您想导航到另一个页面,请使用以下代码。
将 onchange
事件作为属性添加到您的下拉列表中,
onchange="customFunction(this.value)"
在页眉部分创建 customFunction
,
function customFunction(selectedValue){
window.location="Action_URL?myValue="+selectedValue;
}
或者,如果您想 return 返回同一页面,请使用 jQuery ajax、
$("#eventName").change(function(e){
var selectedValue = $(this).val();
$.ajax({
type : 'post',
url : 'Action_URL',
data: { myValue: selectedValue},
success : function(data) {
alert(data);
console.log(data);
}
});
});
希望对您有所帮助。
好吧,这里一团糟:D
首先,NullPointerException 被抛出是因为没有发送值,而没有发送值是因为它们不在表单中。
您应该将它们附在这样的表格中,以便将它们发送到 ActionSelect
操作:
<s:form action="ActionSelect">
<div class="invoicetext1">Event Name :</div>
<s:select name="dp.eventState"
list="%{state}"
class="billlistbox1"
id="eventName" />
<div>
<s:select name="dp.companyState"
class="billlistbox2"
listKey="companyState"
list="%{status}">
</s:select>
</div>
<div class="invoicetext2">Company Name :</div>
<div class="clear"></div>
</div>
<s:submit value=" Click Here"/>
</s:form>
解开了谜团,但这并没有解决你的问题。
您可以通过两种主要方式从页面联系操作:
使用标准提交(正如您所做的那样):
您要么提交一个包含其内容的表单,要么通过最终在查询字符串中传递参数来调用 link。这将创建一个请求,该请求将联系一个操作,该操作将 return 整个 JSP,将加载以代替您现在所在的页面。
使用AJAX:
你 POST 或 GET 到一个动作而不改变当前页面,这个动作可以 return 任何东西,比如 JSP 片段,JSON 结果,二进制结果(通过 Struts2 流结果)等...
然后您可以选择如何处理 returned 数据,例如将其加载到之前为空或具有不同内容的 <div>
中。
现在你的问题是你正在联系一个不是你来自的动作(无法 re-render 你正在进行的整个 JSP)并且你在不使用 AJAX 的情况下调用它,那么无论 object 映射到 "success"
结果是什么(整个 JSP,或 JSP 片段),它将代替您正在加载的 JSP 加载,它将失败。
因为你似乎对此很陌生,我建议你从简单的解决方案开始(没有 AJAX),在熟练之后,下次尝试使用 AJAX。
也就是说,
- 避免将逻辑放入 getter 和 setters;
- 避免调用不是 setter 的方法作为 setters (
setState
, setStatus
...);
- 始终将您的属性设为私有;
- 尝试为变量命名:事件状态和公司状态的状态和状态确实令人困惑;那么 "state" 而不是 "name" 呢(在 jsp 和 DB 上是 "name");
- 考虑在
prepare()
方法中加载像 selectbox 内容这样的信息,这样它们在出现错误时也可用;
- 你没有关闭连接(顺便说一句,最好使用更先进的东西,比如 Spring JDBC,或者更好的 Hibernate,甚至更好的 JPA,但现在保持处理原始查询)
以下是为实现目标而对您的代码进行的重构。我将仅使用 @Getter
和 @Setter
作为语法糖(它们是 Lombok 注释,但你继续使用你的 getter 和 setters,这只是为了清楚):
<head>
<script>
$(function(){
$("#event, #company").on('change',function(){
$("#myForm").submit();
});
});
</script>
</head>
<body>
<form id="myForm">
<div>
...
<s:select id="event" name="event" list="events" />
...
<s:select id="company" name="company" list="companies" />
...
</div>
</form>
<div>
...
Table - iterate **dataForBillsJspList** here
...
</div>
</body>
public class RetrieveEvNaCoNaAction extends ActionSupport {
private static final long serialVersionUID = -5418233715172672477L;
@Getter private List<Event> dataForBillsJspList = new ArrayList<Event>();
@Getter private List<String> events = new ArrayList<String>();
@Getter private List<String> companies = new ArrayList<String>();
@Getter @Setter private String event = null;
@Getter @Setter private String company = null;
@Override
public void prepare() throws Exception {
Connection con;
try {
con = new Database().Get_Connection();
// load companies
PreparedStatement ps = con.prepareStatement("SELECT DISTINCT company_name FROM event");
ResultSet rs = ps.executeQuery();
while (rs.next()) { companies.add(rs.getString("company_name")); }
// load events
ps = con.prepareStatement("SELECT DISTINCT event_name FROM event");
rs = ps.executeQuery();
while (rs.next()) { events.add(rs.getString("event_name")); }
} catch(Exception e) {
e.printStackTrace();
} finally {
con.close();
}
}
@Override
public String execute() {
Connection con;
try {
con = new Database().Get_Connection();
// load the table. The first time the table is loaded completely
String sql = "SELECT EVENT_ID, EVENT_NAME, COMPANY_NAME, CONTACT_PERSON, CONTACT_NO, EMAIL_ID, EVENT_VENUE, " +
"date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom, date_format(TO_DATE,'%d/%m/%Y') as dateAsTo ,EVENT_TIME " +
"FROM event";
String where = "";
// if instead this action has been called from the JSP page,
// the result is filtered on event and company:
if (event!=null && company!=null) {
where = " WHERE event_name = ? AND company_name = ?";
}
// load companies
PreparedStatement ps = con.prepareStatement(sql + where);
if (where.length()>0) {
ps.setString(1,event);
ps.setString(2,company);
}
ResultSet rs = ps.executeQuery();
while (rs.next()) {
dataForBillsJspList.add(new Event(rs.getString("EVENT_ID"),rs.getString("EVENT_NAME"),rs.getString("COMPANY_NAME"),
rs.getString("CONTACT_PERSON"),rs.getString("CONTACT_NO"),rs.getString("EMAIL_ID"),
rs.getString("EVENT_VENUE"), rs.getString("dateAsFrom"), rs.getString("dateAsTo"),
rs.getString("EVENT_TIME")));
}
} catch(Exception e) {
e.printStackTrace();
} finally {
con.close();
}
return SUCCESS;
}
}
这是一个启动示例,但它应该有效。
接下来的步骤是:
- 创建一个带有 id 和描述的 POJO,在 select 框中显示描述,但发送 id
- 使用 header 值 ("please choose an event"...) 并在操作条件 WHERE 中处理(仅公司,仅事件,两者)
- 分页
祝你好运
这里我使用 link 创建了动态下拉列表,但是当我 select 可用列表中的某个值时,应该在操作中调用它 class。
可以在图像中看到的下拉列表,这里的值是从数据库动态加载的,现在我想要的是当我 select 两个下拉列表中的任何值时,值(我的意思是文本值)应该是发送到操作 class,然后我将根据这两个值执行一个 JDBC select 查询,并将显示在图像中显示的 table 中,但一切都应该在 load.Action 上应该在下拉列表中的 selecting 值上,而不是在任何按钮上单击。使用静态值,我可以将下拉列表中的值调用为 class 和 name
attribute.But 在这种情况下我不能:(
我希望我现在清楚了。
我尝试使用列表键、名称和 ID 调用 select 标签,但 none 成功了。
下面是我的 JSP 代码:
<div>
<div class="invoicetext1">Event Name :</div>
<s:select name="dp.eventState"
list="%{state}"
class="billlistbox1"
id="eventName" />
<div>
<s:select name="dp.companyState"
class="billlistbox2"
listKey="companyState"
list="%{status}">
</s:select>
</div>
<div class="invoicetext2">Company Name :</div>
<div class="clear"></div>
</div>
<s:form action="ActionSelect">
<s:submit value=" Click Here"/>
</s:form>
<div>
用于加载动态下拉列表的操作 class:
package com.ca.actions;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.ca.database.Database;
import com.ca.pojo.Event;
import java.sql.PreparedStatement;
import com.opensymphony.xwork2.ActionSupport;
public class RetrieveEvNaCoNaAction extends ActionSupport {
private static final long serialVersionUID = -5418233715172672477L;
List<Event> dataForBillsJspList;
private List state = new ArrayList();
private List status = new ArrayList();
String eventName;
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public RetrieveEvNaCoNaAction() {
// TODO Auto-generated constructor stub
}
public List<Event> getDataForBillsJspList() {
return dataForBillsJspList;
}
public void setDataForBillsJspList(List<Event> dataForBillsJspList) {
this.dataForBillsJspList = dataForBillsJspList;
}
public List getStatus() {
return status;
}
public void setStatus(List status) {
try {
Database database = new Database();
Connection con = database.Get_Connection();
PreparedStatement ps = con
.prepareStatement("SELECT EVENT_NAME,COMPANY_NAME,date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom,date_format(TO_DATE,'%d/%m/%Y') as dateAsTo FROM EVENT");
ResultSet rs = ps.executeQuery();
//dataForBillsJspList = new ArrayList<Event>();
while (rs.next()) {
/*dataForBillsJspList.add(new Event(rs.getString("EVENT_NAME"),
rs.getString("COMPANY_NAME"), rs
.getString("dateAsFrom"), rs
.getString("dateAsTo")));
System.out.println(rs.getString("EVENT_NAME"));*/
status.add(rs.getString("COMPANY_NAME"));
}
System.out.println("Data Collected ...");
}catch(Exception e)
{
e.printStackTrace();
}
}
public List getState() {
return state;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
setState(this.state);
setStatus(this.status);
return "success";
}
public String showEventDetails(){
System.out.println("Hi.."+eventName);
return SUCCESS;
}
public void setState(List state) {
//implement the application specific logic to
try {
Database database = new Database();
Connection con = database.Get_Connection();
PreparedStatement ps = con
.prepareStatement("SELECT EVENT_ID,EVENT_NAME,COMPANY_NAME,CONTACT_PERSON,CONTACT_NO,EMAIL_ID,EVENT_VENUE,date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom,date_format(TO_DATE,'%d/%m/%Y') as dateAsTo ,EVENT_TIME FROM EVENT");
ResultSet rs = ps.executeQuery();
dataForBillsJspList = new ArrayList<Event>();
while (rs.next()) {
dataForBillsJspList.add(new Event(rs.getString("EVENT_ID"),rs.getString("EVENT_NAME"),
rs.getString("COMPANY_NAME"),rs.getString("CONTACT_PERSON"),rs.getString("CONTACT_NO"),rs.getString("EMAIL_ID"),rs.getString("EVENT_VENUE"), rs
.getString("dateAsFrom"), rs
.getString("dateAsTo"),rs.getString("EVENT_TIME")));
//System.out.println(rs.getString("EVENT_NAME"));
state.add(rs.getString("EVENT_NAME"));
System.out.println(rs.getString("EVENT_ID"));
}
System.out.println("Data Collected ...");
}catch(Exception e)
{
e.printStackTrace();
}
//Here for displaying the data on UI, we are using few hardcoded values//
}
}
现在加载动态下拉列表后,我试图通过 S.O.P 调用 selected 值 class,但它给出了空指针异常。下面是我的 POJO class:
package com.ca.pojo;
public class Dropdown
{
private String eventState;
private String companyState;
public Dropdown() {
// TODO Auto-generated constructor stub
}
public String getEventState() {
return eventState;
}
public void setEventState(String eventState) {
this.eventState = eventState;
}
public String getCompanyState() {
return companyState;
}
public void setCompanyState(String companyState) {
this.companyState = companyState;
}
}
下面是操作 class,我试图通过使用名称属性调用 selected 值:
package com.ca.actions;
import com.ca.pojo.Dropdown;
import com.opensymphony.xwork2.ActionSupport;
public class DropdownAction extends ActionSupport
{
Dropdown dp;
public DropdownAction() {
// TODO Auto-generated constructor stub
}
public Dropdown getDp() {
return dp;
}
public void setDp(Dropdown dp) {
this.dp = dp;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println(dp.getEventState());
return "success";
}
}
struts.xml 已正确配置。现在 selecting 两个值后我想相应地在下面 table 中显示数据而无需单击任何按钮但是在 jsp 中我创建了按钮只是为了看看我是否得到 selected 值在行动 class 但实际上我想要它而无需单击任何按钮。
使用Javascript/jQuery你可以做到这一点,这取决于你在达到行动后想做什么class。
如果您想导航到另一个页面,请使用以下代码。
将 onchange
事件作为属性添加到您的下拉列表中,
onchange="customFunction(this.value)"
在页眉部分创建 customFunction
,
function customFunction(selectedValue){
window.location="Action_URL?myValue="+selectedValue;
}
或者,如果您想 return 返回同一页面,请使用 jQuery ajax、
$("#eventName").change(function(e){
var selectedValue = $(this).val();
$.ajax({
type : 'post',
url : 'Action_URL',
data: { myValue: selectedValue},
success : function(data) {
alert(data);
console.log(data);
}
});
});
希望对您有所帮助。
好吧,这里一团糟:D
首先,NullPointerException 被抛出是因为没有发送值,而没有发送值是因为它们不在表单中。
您应该将它们附在这样的表格中,以便将它们发送到 ActionSelect
操作:
<s:form action="ActionSelect">
<div class="invoicetext1">Event Name :</div>
<s:select name="dp.eventState"
list="%{state}"
class="billlistbox1"
id="eventName" />
<div>
<s:select name="dp.companyState"
class="billlistbox2"
listKey="companyState"
list="%{status}">
</s:select>
</div>
<div class="invoicetext2">Company Name :</div>
<div class="clear"></div>
</div>
<s:submit value=" Click Here"/>
</s:form>
解开了谜团,但这并没有解决你的问题。
您可以通过两种主要方式从页面联系操作:
使用标准提交(正如您所做的那样):
您要么提交一个包含其内容的表单,要么通过最终在查询字符串中传递参数来调用 link。这将创建一个请求,该请求将联系一个操作,该操作将 return 整个 JSP,将加载以代替您现在所在的页面。
使用AJAX:
你 POST 或 GET 到一个动作而不改变当前页面,这个动作可以 return 任何东西,比如 JSP 片段,JSON 结果,二进制结果(通过 Struts2 流结果)等...
然后您可以选择如何处理 returned 数据,例如将其加载到之前为空或具有不同内容的
<div>
中。
现在你的问题是你正在联系一个不是你来自的动作(无法 re-render 你正在进行的整个 JSP)并且你在不使用 AJAX 的情况下调用它,那么无论 object 映射到 "success"
结果是什么(整个 JSP,或 JSP 片段),它将代替您正在加载的 JSP 加载,它将失败。
因为你似乎对此很陌生,我建议你从简单的解决方案开始(没有 AJAX),在熟练之后,下次尝试使用 AJAX。
也就是说,
- 避免将逻辑放入 getter 和 setters;
- 避免调用不是 setter 的方法作为 setters (
setState
,setStatus
...); - 始终将您的属性设为私有;
- 尝试为变量命名:事件状态和公司状态的状态和状态确实令人困惑;那么 "state" 而不是 "name" 呢(在 jsp 和 DB 上是 "name");
- 考虑在
prepare()
方法中加载像 selectbox 内容这样的信息,这样它们在出现错误时也可用; - 你没有关闭连接(顺便说一句,最好使用更先进的东西,比如 Spring JDBC,或者更好的 Hibernate,甚至更好的 JPA,但现在保持处理原始查询)
以下是为实现目标而对您的代码进行的重构。我将仅使用 @Getter
和 @Setter
作为语法糖(它们是 Lombok 注释,但你继续使用你的 getter 和 setters,这只是为了清楚):
<head>
<script>
$(function(){
$("#event, #company").on('change',function(){
$("#myForm").submit();
});
});
</script>
</head>
<body>
<form id="myForm">
<div>
...
<s:select id="event" name="event" list="events" />
...
<s:select id="company" name="company" list="companies" />
...
</div>
</form>
<div>
...
Table - iterate **dataForBillsJspList** here
...
</div>
</body>
public class RetrieveEvNaCoNaAction extends ActionSupport {
private static final long serialVersionUID = -5418233715172672477L;
@Getter private List<Event> dataForBillsJspList = new ArrayList<Event>();
@Getter private List<String> events = new ArrayList<String>();
@Getter private List<String> companies = new ArrayList<String>();
@Getter @Setter private String event = null;
@Getter @Setter private String company = null;
@Override
public void prepare() throws Exception {
Connection con;
try {
con = new Database().Get_Connection();
// load companies
PreparedStatement ps = con.prepareStatement("SELECT DISTINCT company_name FROM event");
ResultSet rs = ps.executeQuery();
while (rs.next()) { companies.add(rs.getString("company_name")); }
// load events
ps = con.prepareStatement("SELECT DISTINCT event_name FROM event");
rs = ps.executeQuery();
while (rs.next()) { events.add(rs.getString("event_name")); }
} catch(Exception e) {
e.printStackTrace();
} finally {
con.close();
}
}
@Override
public String execute() {
Connection con;
try {
con = new Database().Get_Connection();
// load the table. The first time the table is loaded completely
String sql = "SELECT EVENT_ID, EVENT_NAME, COMPANY_NAME, CONTACT_PERSON, CONTACT_NO, EMAIL_ID, EVENT_VENUE, " +
"date_format(FROM_DATE,'%d/%m/%Y') as dateAsFrom, date_format(TO_DATE,'%d/%m/%Y') as dateAsTo ,EVENT_TIME " +
"FROM event";
String where = "";
// if instead this action has been called from the JSP page,
// the result is filtered on event and company:
if (event!=null && company!=null) {
where = " WHERE event_name = ? AND company_name = ?";
}
// load companies
PreparedStatement ps = con.prepareStatement(sql + where);
if (where.length()>0) {
ps.setString(1,event);
ps.setString(2,company);
}
ResultSet rs = ps.executeQuery();
while (rs.next()) {
dataForBillsJspList.add(new Event(rs.getString("EVENT_ID"),rs.getString("EVENT_NAME"),rs.getString("COMPANY_NAME"),
rs.getString("CONTACT_PERSON"),rs.getString("CONTACT_NO"),rs.getString("EMAIL_ID"),
rs.getString("EVENT_VENUE"), rs.getString("dateAsFrom"), rs.getString("dateAsTo"),
rs.getString("EVENT_TIME")));
}
} catch(Exception e) {
e.printStackTrace();
} finally {
con.close();
}
return SUCCESS;
}
}
这是一个启动示例,但它应该有效。
接下来的步骤是:
- 创建一个带有 id 和描述的 POJO,在 select 框中显示描述,但发送 id
- 使用 header 值 ("please choose an event"...) 并在操作条件 WHERE 中处理(仅公司,仅事件,两者)
- 分页
祝你好运