Below is the code which i have written to retrieve values from the database (I have added the whole code so it will be easier for you to understand what i am trying to say h
Use list in class as return value,
List<String> sectionName = new ArrayList<String>();
while (resultSet.next())
sectionName.add(resultSet.getString("section_name"));
then do
<select name='name'>
<c:forEach var="parameter" items="${sectionName }">
<option value="${parameter}">${parameter}</option>
</c:forEach>
</select>
Here parameter is meadiator variable to access list variable value You can use String array also
First of all, If you are trying to do something with MVC you should decouple your code. JSP file only access to the request with no java code at all.
So your Controller needs to do something like this.
request.setAttribute("ipsections",added.populateSelect());
and then, in your jsp file
<select name='anything'>
<c:forEach items="${ipsections}" var="ipsection">
<option value="${ipsection}">${ipsection}</option>
</c:forEach>
</select>
Since it looks you're new to Java Web Programming, you can implement a full MVC scenario using JSP (View), Servlet (Controller) and Entities, DAOs and Service layer (Model). This is what you have:
Model:
DBConnection
as a database access class (Data access layer)AddRecords
as your DAO class (Data access layer)No class as Service class (Business logic layer). For this example, let's have a RecordService
class for this:
public class RecordService {
public RecordService() {
}
//since it has no real business logic, it will serve as facade
public String[] getRecords() {
AddRecords addRecords = new AddRecords();
return addRecords.populateSelect();
}
}
Controller:
No class for Controller yet. Since I assume you're using plain Java EE, you would use a Servlet (implementation based on Servlets StackOverflow wiki):
@WebServlet("/RecordServlet")
public class RecordsServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//it will fire on a GET request (like accessing directly to the URL
//from the browser)
//here you should load the data for the View (JSP)
loadData(request);
//forward to show the view
request.getRequestDispatcher("hello.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//it will fire on a POST request (like submitting the form using POST method)
String selectedRecord = request.getParameter("selectedRecord");
System.out.println(selectedRecord);
request.setAttribute("selectedRecord", selectedRecord);
loadData(request);
//forward to show the view
request.getRequestDispatcher("hello.jsp").forward(request, response);
}
//method to load the data available to select
private void loadData(HttpServletRequest request) {
RecordService recordService = new RecordService();
String[] records = recordService.getRecords();
//set the data as attribute on the request to be available on the View
request.setAttribute("records", records);
}
}
View:
You already have a JSP file. Since you haven't posted the name, let's call it hello.jsp
. I will just adap your actual JSP code using JSTL:
<!-- at the beginning of the JSP, call the JSTL library -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<form action="RecordServlet" method="POST">
Please select an element:
<select id="selectedRecord" name="selectedRecord">
<c:forEach items="${records}" var="record">
<option value="${record}">${record}</option>
</c:forEach>
</select>
<br />
<input type="submit" value="Show selected record" />
<c:if test="${not empty selectedRecord}">
<br />
You've selected ${selectedRecord}!
</c:if>
</form>
Now, to run the example, build the project and access to it using http://localhost:8080/YourWebProjectName/RecordServlet
. Also, you can set in the web.xml
file:
<welcome-file-list>
<welcome-file>RecordServlet</welcome-file>
</welcome-file-list>
And just run the web project.
Some notes:
RecordXXX
since you had this AddRecord
class (it should be RecordDAO
or something more useful to code readers like UserDAO
or YourEntityDAO
).edu.home.dao
for DAO classes, edu.home.service
for service/business logic classes, and on...