下拉列表中的数据库中的值在Liferay中显示为空

时间:2013-04-01 10:36:46

标签: jsp liferay

我想在下拉列表中显示来自数据库的值。代码如下<form>

<aui:select id="empName" name="empName">

<%
Employee employee;
Employee newEmployee = new EmployeeImpl();
int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();
for(int i=0; i<totalEmployees;i++) {
%>

<aui:option name = "opt" value ='<%=String.valueOf(newEmployee.getEmpFname())%>' />

System.out.println("newEmployee.getFname string value in loop: " +newEmployee.getEmpFname());

<%
}
%>

</aui:select>

它显示了一个很大的空列表。

如何从数据库中获取下拉列表中的值?

2 个答案:

答案 0 :(得分:3)

我可以从您提供的代码中了解以下内容:

Employee newEmployee = new EmployeeImpl();
int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();

此代码位于for循环之前,因此您所做的只是获取total-count而不是Employees的实际列表。

这里是for-loop:

<aui:option name = "opt" value ='<%=String.valueOf(newEmployee.getEmpFname())%>' />

您只是通过代码""获取空字符串nullnewEmployee.getEmpFname(),因为您的newEmployee对象不是来自数据库,而是在JSP本身中创建的因此有一个很大的空列表: - )

我认为您还需要从数据库返回List<Employee> totalEmployees(总计数)而不是创建新实例,然后只在该实例上调用.getEmpFname()

答案 1 :(得分:-1)

enter code here

<aui:select id="empName" name="empName">
<%

int totalEmployees = EmployeeLocalServiceUtil.getEmployeesCount();

List<Employee> list=  EmployeeLocalServiceUtil.getEmployees(0, totalEmployees );

for(Employee employeeList: list)
{

%>  

<aui:option value="<%=employeeList.getEmployeeName()%>"><%=employeeList.getEmployeeName()%> </aui:option>   

<% 
System.out.println(employeeList.getEmployeeName());
%>

<%
}
%>
</aui:select>