2013-12-13 5 views
1

Я новичок в jsp. Я пытаюсь получить доступ к значениям из моего класса java на моей странице jsp. я прошел через множество страниц и реализовал множество вещей, и я сделал все это в беспорядке. это мой дао метод классаИмпорт значений из класса java в jsp

public DisplayDO Display(DisplayDO disDo)throws Exception 
{ 
    System.out.println("inside dao display"); 
    Connection conn = null; 
    try{ 
      conn = DbConnection.getConn(); 
     } 
    catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
     Statement statement = null; 
    try{ 
     statement = conn.createStatement(); 
     } 
    catch(SQLException e) 
    { 
     e.printStackTrace(); 
    } 
    System.out.println("dbconnection established"); 
    int userid=disDo.getUserid(); 

    try 
    { 
     System.out.println("inside dao try"); 
     System.out.println("userid = "+userid); 
     String str= "Select address_id from user where user_id =910"; 
     //+userid; 
     PreparedStatement ps= conn.prepareStatement(str) ; 
     ResultSet rs=ps.executeQuery(str); 
     int address1=0; 
     while (rs.next()) 
     { 
      address1= rs.getInt(("address_id")); 
     } 

     int addressid = 0; 
     addressid = address1; 
     System.out.println("values of addressid= "+ addressid +"address1= "+ address1); 
     System.out.println("query execution successfull"); 
     str="select name,street_name,city,gender,reg_date from user,address,registeration where user.address_id="+addressid+" && address.address_id= "+addressid+" && registeration.user_id="+userid+" ;"; 
     rs=ps.executeQuery(str); 
     UserDO user = new UserDO(); 
     RegDO regDO = new RegDO(); 
     AddressDO addressDO = new AddressDO(); 
     while(rs.next()) 
     { 
      user.setName(rs.getString("name")); 
      System.out.println("name= "+rs.getString("name")); 
      addressDO.setStreetname(rs.getString("street_name")); 
      System.out.println("street_name= "+rs.getString("street_name")); 
      addressDO.setStreetname(rs.getString("city")); 
      System.out.println("city = "+rs.getString("city")); 
      regDO.setGender(rs.getString("gender")); 
      System.out.println("gender = "+rs.getString("gender")); 
      regDO.setReg_date(rs.getString("reg_date")); 
      System.out.println("reg_date = "+rs.getString("reg_date")); 
      System.out.println("date using getter"+regDO.getReg_date()); 
     } 
    } 
    catch(Exception e) 
    { 
     e.setStackTrace(null); 
    } 
    return disDo; 

} 

Этот код работает отлично, и я получаю значения в консоли ..

следующий код моей страницы JSP.

<%@page import="java.lang.String" %> 
    <%@page import="java.io.*" %> 
    <%@page import="com.quinoid.e_tender.databean.RegDO"%> 
    <%@page import="com.quinoid.e_tender.databean.AddressDO"%> 
    <%@page import="com.quinoid.e_tender.databean.UserDO"%> 
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org /TR/html4/loose.dtd"> 
    <html> 
     <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
     <title>Insert title here</title> 
     </head> 
     <body> 
     <h1>Your Values</h1> 

    <% 
System.out.print("inside display_1"); 
UserDO user=(UserDO)request.getAttribute("name"); 
out.println(user); 
AddressDO add=(AddressDO)request.getAttribute("add"); 
RegDO reg=(RegDO)request.getAttribute("reg"); 
String name,street_name,city,gender,reg_date; 
name=(String)request.getAttribute("user"); 

/*street_name=add.getStreetname(); 
city=add.getCity(); 
gender=reg.getGender(); 
reg_date=reg.getReg_date(); 
*/%> 
<!-- <script type="text/javascript"> 

    /*document.getElementById("name").innerHTML =(String)request.getAttribute("name"); 
document.getElementById("street_name").innerHTML = add.getStreetname(); 
    document.getElementById("city").innerHTML = add.getCity(); 
    document.getElementById("gender").innerHTML = reg.getGender(); 
    document.getElementById("reg_date").innerHTML = reg.Reg_date(); */ 

    </script> --> 
    <form name="innerHTML" method ="post"> 
<table border="1"> 
<tr> 
    <th> Name </th> 
    <th>Street Name</th> 
    <th> City </th> 
    <th> Gender </th> 
    <th>Registration date</th> 
    </tr> 
    <tr> 
      <td id=name>  </td> 
      <td id=street_name> </td> 
      <td id=city>  </td> 
      <td id=gender>  </td> 
      <td id=reg_dae>  </td> 
    </tr> 
</table> 
    </form> 
    </body> 
    </html> 

Iam пытается отобразить значения «имя», «STREET_NAME», «город», «пол», «reg_date» в таблице и с треском провалились .. Это результат в моей консоли

the servlet is in user display 
    In display method 
    userid= 910 
    inside dao display 
    dbconnection established 
    inside dao try 
    userid = 910 
    values of addressid= 118address1= 118 
    query execution successfull 
    name= anjana 
    street_name= nagar 
    city = tvm 
    gender = F 
    reg_date = 1990-08-15 
    date using getter1990-08-15 
    exiting display method 
    inside display_1 
    inside display_1 

сделать помощь .. спасибо заранее ..

ответ

1

этот атрибут в «запросе» в сервлет перед переадресацией на страницу JSP.

UserDO user=(UserDO)request.getAttribute("name"); 
out.println(user); 
AddressDO add=(AddressDO)request.getAttribute("add"); 
RegDO reg=(RegDO)request.getAttribute("reg"); 
String name,street_name,city,gender,reg_date; 
name=(String)request.getAttribute("user"); 

установить эти значения, как

request.setAttribute("name",userDo); //UserDo instance. 
request.setAttribute("add",addressDo);//AddressDO instance. and so on... 

и передадут

request.getRequestDispatcher("xxxx").forward(request,response);//xxxx is jsp page you are forwarding. 

И получить значение в JSP с помощью

<%=xxx%>//xxx is the reference as **name**, **city**.. 
0

попробуйте следующий код,

+0

привет .. я попробовал ваш код но я получаю java.lang.NullPointerException, что он не может получить значения, отображаемые в консоли .. его все еще возвращает null – Alvin

0

Вы должны установить свои атрибуты в объект запроса и перенести класс сервлета в JSP, где вы можете getAttribute из объекта Request, поскольку это неявный объект в JSP.

Но когда вызывается getAttribute, вы должны отнести его к соответствующему типу объекта.

И убедитесь, что вы не используете механизм переадресации, иначе ваш объект Request будет пустым, потому что это новый объект для JSP. Только в Forward Mechanism объект запроса копируется в новый объект запроса на JSP.

Вы можете использовать примеры, доступные в Сети, а также Pradeep Kr Kaushal пример.

Я написал это, чтобы сообщить вам о воздействии механизма Forward и Redirect на объект Request.

0

Вы не называете вас dao class Показать метод в любом месте.

В классе дао, изменить метод, как так (имена методов в начале Java со строчной буквы по соглашению):

public DisplayDo display() throws Exception { ... 

В конце метода, после заполнения их от ResultSet, инициализировать объект DisplayDo и установить userDo, addressDo и regDo объекты:

DisplayDO displayDo = new DisplayDO(); 
    displayDo.setRegDo(regDO); 
    displayDo.setAddressDi(addressDO); 
    displayDo.setUserDo(userDO); 

в вашей JSP, добавьте импорт для вашего класса дао (предполагается, что это называется DisplayDao):

<%@page import="com.quinoid.e_tender.dao.DisplayDao"%> 

Добавьте это в JSP, чтобы создать новый DisplayDao и получить доступ к его метод отображения():

<% DisplayDao displayDao = new DisplayDao(); 
    DisplayDo displayDo = displayDao.display(); 
    UserDO userDo = displayDo.getUserDo(); 
    ... 
%> 

Вы можете затем выходные значения, как это:

<td id="name"><%= userDo.getName() %></td> 
Смежные вопросы