2013-01-23 2 views
0

JSP를 연습하기 위해 온라인 서적 주문 시스템의 더미 프로젝트를 만들려고합니다. MVC를 따르려고합니다.JSP로 표준 접근 방식의 MVC

MVC에서 모델의 변경 사항은 View/Controller에서 변경하지 않아도됩니다. 모델

, 난 및 (고객 데이터 CRUD 수행) CustomerCollection 클래스

제어기에서 I는 CustomerCollection를 호출 제어기 서블릿이 (고객 속성과 게터 족을 갖는) 고객 클래스를 생성 고객 액세스 고객의 목록을 요청의 속성으로 추가합니다. 보기에서

, 나는 컨트롤러에 의해 추가 custoemers의 목록을 액세스하고 다음과 같이 페이지에 표시 JSP 있습니다

<table id="customerTable"> 
       <tr id="customerTableHeaderRow"> 
        <th>Id</th> 
        <th>First name</th> 
        <th>Last name</th> 
        <th>Address</th> 
        <th>Phone number</th> 
        <th>Gender</th> 
       </tr> 
       <%     
        for(Customer customer: customers)       
        { 
       %> 
       <tr class="customerTableRow"> 
        <td><%= customer.getId() %></td> 
        <td><%= customer.getFirstName() %></td> 
        <td><%= customer.getLastName() %></td> 
        <td><%= customer.getAddress() %></td> 
        <td><%= customer.getPhoneNumber() %></td> 
        <td><%= customer.getGender() %></td>      
       </tr> 
       <%  
        } 
       %> 
</table> 

을하지만 지금은 생각을하는 내 데이터베이스에 대한 변경 등을 할 때 어떤 열을 customers 테이블에 추가하면 뷰의 루프를 수정하여 해당 열의 내용을 표시해야합니다.

여기에 무슨 문제가 있습니까? 잘못하고 있니? 또는을 수행하는 표준 방법이 입니까?

+0

"이 모델의 모든 변경 사항은 View/Controller에서 변경할 필요가 없습니다."라는이 주장을 뒷받침하는 링크가 있습니까? 나에게 잘못된 것 같습니다. – Manish

+0

잘 이상적으로, 그렇지 않으면 그것은 MVC의 목적을 막을 것입니다. – Mahesha999

+0

IMHO, MVC에 따라 모델, 뷰 및 컨트롤러 사이에 명확한 구분이 있어야하며 각각 고유 한 작업을 수행해야하지만 변경 사항은 언급하지 않습니다. 모델이보기를 변경해서는 안됩니다. 모델을 변경하면보기에서 변경해야합니다! – Manish

답변

0

MVC 방식에서는 JSP 파일에 Java 코드 행이 없어야하며 JSTL을 사용해야하며 서블릿 클래스에는 JDBC 코드가 없어야하므로 DAO를 사용해야합니다. 그래서 기본적으로 당신은 그것을 올바르게 구현하고 있습니다. 단지 아래와 같이 몇 가지 변경 만하면됩니다.

명명 규칙에 따라 CustomerCollection은 CustomerDAO 여야합니다. Scriptlet을 JSTL 및 EL로 바꿉니다.

jsp의 Customes는 다음과 같이 액세스 할 수 있습니다.

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<table> 
<c:forEach items="${customers}" var="customer"> 
    <tr> 
     <td>${customer.firstName}</td> - access all your attributes this way 
    </tr> 
</c:forEach> 
</table> 
+0

굉장한 점 : CustoemrDAO를 위해 +1; 사용하기 위해 +1 JSTL/EL; +1 코드; – Mahesha999

+0

하지만 모델이 변경되면 여전히 JSP를 수정해야합니까? – Mahesha999

+0

이러한 변경 사항을 표시하고 싶지 않은 한 :) –

관련 문제