我正在使用JSP + JSTL,但我很无聊c:if,c:choose,...
所以,我希望我的JSP页面都使用JSP和Thymeleaf进行渲染(我计划尽快删除所有JSTL).我正在使用Spring MVC框架:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp" />
<property name="order" value="1" />
</bean>
<!-- Thymeleaf -->
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
<property name="order" value="2" />
</bean>
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我只是在没有扩展的情况下返回jsp.
return "folder/page";
Run Code Online (Sandbox Code Playgroud)
我的JSP页面可以首先使用JSP解析器,然后使用Thymeleaf解析器进行渲染吗?如果有,怎么样?
链接JSP和Thymeleaf似乎非常复杂.所以,我想对JSP文件使用内部解析器,对HTML文件使用Thymeleaf模板解析器.我该怎么做?
我需要将结果字段映射到实体字段。
@Entity
@Table (name="my_table")
@Cacheable(true)
@Data
@SqlResultSetMapping(name="MyResult",
entities = {
@EntityResult(entityClass=MyClass.class,
fields = {@FieldResult(name="customName", column="customName")})
},
columns = {@ColumnResult(name="customName")})
public class MyClass implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private short model;
private String reference;
@Lob
@Column(columnDefinition="TEXT")
private String content = "";
@Column(length=64, columnDefinition="CHAR(64)")
private String hash;
@Transient
private String customName = ""; //this is the column I want to map
}
Run Code Online (Sandbox Code Playgroud)
我知道@Transient
JPA 会忽略它,但是当我删除它时,我得到了这个异常:
org.hibernate.HibernateException: Missing column: customName …
Run Code Online (Sandbox Code Playgroud)