html、json、または xml ビューを返すようにアプリケーションを構成しました。html ビューと xml ビューは問題ありませんが、json ビューには問題があります。
返される json には、常に「{} &&」というプレフィックスが付けられます。
例
{} && {"asd":{"name":"Practical Spring LDAP","isbn":"978-1475265453","author":"Balaji Varanasi"}}
ビューをレンダリングするための私の春の設定は
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="html" value="text/html"/>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</map>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="prefixJson" value="true"/>
</bean>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.sam.beans.Book</value>
</list>
</property>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
サンプルコントローラー
@RequestMapping("/getBook")
public String showBook(Model model)
{
model.addAttribute("book", new Book("Practical Spring LDAP", "978-1475265453", "Balaji Varanasi"));
return "book";
}
助けが必要です...
更新: Book のクラス定義を追加する
@XmlRootElement(name="book")
public class Book
{
private String name;
private String isbn;
private String author;
public Book()
{
}
public Book(String name, String isbn, String author)
{
this.name = name;
this.isbn = isbn;
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}