2017-05-03 2 views
0

요즘 저는 새로운 개념의 응용 프로그램을 개발하고 있습니다. 데이터 액세스 및 조작이 완료되었습니다 (내 질문에 대한 귀하의 응답 덕분에) 지금은 프레젠테이션 레이어/프런트 엔드로 직접 시도해야합니다.Java Spring 데이터를 Json으로 변환하고 부트 스트랩으로 jsp에 전달하십시오.

웹 앱의 경우 보스는 처리 된 데이터를 Json으로 변환 한 다음 부트 스트랩을 통해 (브라우저를 통해 상호 작용하는) 사용자에게 제공하기를 원합니다.

이 세상은 내가 처음에 가이드와 튜토리얼을 읽었지만 실제로 넘겨주지 않았다는 가정하에 시작되었다. 현재 탈출하고있는 것은 : 가능하다면 어떻게 정보를 제공 하는가? Json 형식에서는 Bootstrap을 사용하여 html 표를 표시하고 데이터를 얻으면이 표를 동적으로 생성 할 수 있는지 여부를 나타냅니다.

스프링 부트를 사용하여 개발 된이 응용 프로그램은 기본적으로 db를 쿼리하므로 비디오 결과를 사용자에게 보여줘야합니다. 데이터 액세스는 JDBC 템플릿을 사용하여 구현되었으며 모든 것이 테스트 중에 진행됩니다. Json 형식 데이터 변환에 관해서는 Jackson 프레임 워크를보고이 사이트에서 생성 된 데이터를 위의 형식으로 변환하는 데 사용하는 방법에 대한 많은 흥미로운 예제를 발견했습니다. 따라서 의심의 여지가 없습니다.

이제이 데이터를 JSP에 제출하고 부트 스트랩을 사용해야한다고 가정합니다. 내 애플리케이션에서 "JSON 및 호출기 데이터를 테이블에 저장"한다고 어떻게 말할 수 있습니까?

@Controller 
public class PolarisController 
{ 
    @Autowired 
    private FirewallsJDBCTemplate firewalls; 

    @RequestMapping(value="/firewalls") 
    @ResponseBody... //here I put the annotation for conversion using jackson 
    public ModelAndView listFirewall(ModelAndView model) throws IOException 
    { 
     /** 
     * This is the list of firewall obtained by the method implemented 
     * in the DAO class. 
     */ 
     List<Firewall> listFirewall = firewalls.getFirewall(null, null, null, null); 
     model.addObject("listFirewall", listFirewall); 
     model.setViewName("firewall"); 

     return model; 
    } 
} 
:이 데이터 모든 방화벽의 목록을 노출하는 간단한 컨트롤러한다고 가정 지금

/** 
* A firewall delimits a perimeter that needs to be protected and is characterized by 
* Id, ip, informations and name. 
* 
* @author *** 
*/ 

public class Firewall 
{ 
    private String id; 
    private String ip; 
    private String info; 
    private String name; 

    /** 
    * Empty constructor, which instantiates a Firewall specimen without setting default values 
    */ 
    public Firewall() {} 

    /** 
    * Constructor instantiating a Firewall specimen specifying its initial values 
    * 
    * @param id the firewall's id code 
    * @param ip the firewall's ip code 
    * @param info the info about firewall 
    * @param name firewall's name 
    */ 
    public Firewall(String id, String ip, String info, String name) 
    { 
     super(); 
     this.id = id; 
     this.ip = ip; 
     this.info = info; 
     this.name = name; 
    } 

    /** 
    * Return firewall's identification code 
    * @return firewall id 
    */ 
    public String getId() 
    { 
     return id; 
    } 

    /** 
    * Set the firewall's id. 
    * @param id the value for firewall's id 
    */ 
    public void setId(String id) 
    { 
     this.id = id; 
    } 

    /** 
    * Return firewall's ip 
    * @return firewall's ip 
    */ 
    public String getIp() 
    { 
     return ip; 
    } 

    /** 
    * Set firewall's ip 
    * @param ip the value for firewall's ip 
    */ 
    public void setIp(String ip) 
    { 
     this.ip = ip; 
    } 

    /** 
    * Return firewall's info 
    * @return info 
    */ 
    public String getInfo() 
    { 
     return info; 
    } 

    /** 
    * Set the firewall's info 
    * @param info value forfirewall's info 
    */ 
    public void setInfo(String info) 
    { 
     this.info = info; 
    } 

    /** 
    * Return the firewall's name 
    * @return name 
    */ 
    public String getName() 
    { 
     return name; 
    } 

    /** 
    * Set the firewall's name 
    * @param nome value for firewall's name 
    */ 
    public void setName(String name) 
    { 
     this.name = name; 
    } 
} 

: 예를 들어

, 당신은 다음과 같은 자바 클래스 대표 방화벽 객체가 있다고 가정

마지막으로 우리는 firewall.jsp (컨트롤러 클래스의 모델 이름에 따라)이라는 jsp를 가지고 있는데이 JSP에서는 db의 질문에 의해 생성 된 데이터를 포함하는 테이블을 넣어야하며이 페이지에서 부트 스트랩을 사용해야합니다. 이 작업을 어떻게 수행 할 수 있습니까?

+0

데이터를 보내려면 왜 @@ RequestBody를 사용해야합니까? 이것이 여러분의 요청에 대한 응답이기 때문에'@ ResponseBody'가 더 적합하다고 생각하지 않습니까? – akuma8

+0

예. 그건 내 글을 쓰는 실수 야, 사과하고 바로 잡는다. –

답변

1

JSON을 제공하는 API와 JSP 뷰를 섞지는 않습니다. 스프링 모델 (AndView)을 사용하여 JSP/Thymeleaf 뷰를 사용하거나 JSON을 제공하는 API를 작성한 다음 각도와 같은 프론트 엔드 자바 스크립트 프레임 워크를 사용하여 뷰와 모델을 처리 할 것을 제안합니다.

내가 귀하의 상황에 있다면 저는 템플릿 엔진으로 Thymeleaf를 사용하여 JSON 항목을 삭제할 것입니다. 프론트 엔드에 대한 경험 부족에 대해 언급 한이 루트가 도약이라고 생각하지 않습니다. Spring Github 에서 찾을 수 있습니다. this guide

+0

귀하의 제안에 감사 드리며 감사합니다. 나는 상사와 대결 할 것이고 나는 당신의 생각을 제안 할 것이다. –