问题:
index.html 页面不显示内容
日志:
2019-04-05 21:32:42.173 INFO 15052 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2019-04-05 21:32:42.178 INFO 15052 --- [ restartedMain] com.cjx.shequ.ShequApplication : Started ShequApplication in 6.312 seconds (JVM running for 8.216)
2019-04-05 21:32:44.978 INFO 15052 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2019-04-05 21:32:44.979 INFO 15052 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2019-04-05 21:32:45.005 INFO 15052 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 26 ms
2019-04-05 21:32:45.046 INFO 15052 --- [nio-8080-exec-1] com.cjx.shequ.aspect.LogAspect : BeforeMethodclass org.springframework.validation.support.BindingAwareModelMap {}|
2019-04-05 21:32:45.601 INFO 15052 --- [nio-8080-exec-1] com.cjx.shequ.aspect.LogAspect : after methodFri Apr 05 21:32:45 CST 2019
2019-04-05 21:32:45.652 INFO 15052 --- [nio-8080-exec-1] o.a.v.t.v.servlet.ServletToolboxManager : Using config file '/toolbox.xml'
2019-04-05 21:32:45.652 WARN 15052 --- [nio-8080-exec-1] o.a.v.tools.view.XMLToolboxManager : XMLToolboxManager has been deprecated. Please use org.apache.velocity.tools.ToolboxFactory instead.
2019-04-05 21:32:45.652 WARN 15052 --- [nio-8080-exec-1] o.a.v.t.v.servlet.ServletToolboxManager : ServletToolboxManager has been deprecated. Please use org.apache.velocity.tools.ToolboxFactory instead.
代码:
Controller
package com.cjx.shequ.controller;
import com.cjx.shequ.model.Question;
import com.cjx.shequ.model.ViewObject;
import com.cjx.shequ.service.QuestionService;
import com.cjx.shequ.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.ArrayList;
import java.util.List;
@Controller
public class IndexController {
private static final Logger logger= LoggerFactory.getLogger(IndexController.class);
@Autowired
UserService userService;
@Autowired
QuestionService questionService;
@RequestMapping(path={"/","/index"},method = {RequestMethod.GET})
public String index(Model model) {
List<Question> latestQuestions = questionService.getLatestQuestions(0, 0, 10);
List<ViewObject> vos = new ArrayList<>();
for(Question question:latestQuestions){
ViewObject vo = new ViewObject();
vo.set("question",question);
vo.set("user",userService.getUser(question.getUserId()));
vos.add(vo);
}
model.addAttribute(vos);
return "index";
}
}
Service
package com.cjx.shequ.service;
import com.cjx.shequ.dao.QuestionDAO;
import com.cjx.shequ.model.Question;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class QuestionService {
private static final Logger logger = LoggerFactory.getLogger(QuestionService.class);
@Autowired
private QuestionDAO questionDAO;
public List<Question> getLatestQuestions(int userId, int offset, int limit){
return questionDAO.selectLatestQuestions(userId,offset,limit);
}
}
Dao
package com.cjx.shequ.dao;
import com.cjx.shequ.model.Question;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface QuestionDAO {
String TABLE_NAME = " question ";
String INSERT_FIELDS = " title, content, created_date, user_id, comment_count ";
String SELECT_FIELDS = " id, " + INSERT_FIELDS;
@Insert({"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
") values (#{title},#{content},#{createdDate},#{userId},#{commentCount})"})
int addQuestion(Question question);
List<Question> selectLatestQuestions(@Param("userId") int userId, @Param("offset") int offset,
@Param("limit") int limit);
}
QuestionDAO.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cjx.shequ.dao.QuestionDAO">
<sql id="table">question</sql>
<sql id="selectFields">id, title, content, comment_count,created_date,user_id
</sql>
<select id="selectLatestQuestions" resultType="com.cjx.shequ.model.Question">
SELECT
<include refid="selectFields"/>
FROM
<include refid="table"/>
<if test="userId != 0">
WHERE user_id = #{userId}
</if>
ORDER BY id DESC
LIMIT #{offset},#{limit}
</select>
</mapper>
求解:
com.cjx.shequ.controller.Indexcontroller
model.addAttribute("vos",vos); 忘了写"vos",