【问题标题】:How to redirect into HTML static page from the Spring Boot genericResponse method如何从 Spring Boot genericResponse 方法重定向到 HTML 静态页面
【发布时间】:2019-02-14 12:08:34
【问题描述】:

我对 Spring Boot 很陌生。根据客户要求,我的其他成员使用 spring boot 开发了代码段,以从这里获取用户响应。这是代码段。

public GenericResponse updateAcceptOrReject(String password, FileAcceptStatus status) {
    // TODO Auto-generated method stub
    GenericResponse genericResponse = new GenericResponse();
    String sql = "SELECT * FROM employee WHERE pass_code = ?";

    Employee employee = null;
    try {
        employee = (Employee) jdbcTemplate.queryForObject(sql, new Object[] { password }, new EmployeeRowMapper());
    } catch (EmptyResultDataAccessException e) {
        System.out.println("error :"+ e.getLocalizedMessage());
        employee = null;
    }catch (Exception e) {
        System.out.println("error :"+ e.getLocalizedMessage());
        employee = null;
    }
    // check if employee available          
    if(employee == null) {
        genericResponse.setStatusCode(200);
        genericResponse.setMessage("No employee found");
        return genericResponse;
    }
    // check acceptStatus 
    if(employee.getAccept_status() != 0) {
        genericResponse.setStatusCode(201);
        genericResponse.setMessage("You already accepted");
        return genericResponse;
    }

    String updateSql = "update employee set accept_status=? where pass_code=?";
    int[] types = {Types.INTEGER, Types.VARCHAR};

    int updatedFlag = jdbcTemplate.update(updateSql, new Object[] { status.ordinal(), password }, types);
    if(updatedFlag == 1) {
        genericResponse.setStatusCode(0);
        genericResponse.setMessage("Success");
        return genericResponse;
    }else {
        genericResponse.setStatusCode(-99);
        genericResponse.setMessage("Error occured while updating employ");
        return genericResponse;
    }
}

我想要的是加载单独的静态 HTML 页面,其中包含位于另一个包中的成功消息,而不是在 genericResponse.setMessage() 中声明成功消息。其他消息的静态页面也是如此。

谁能帮帮我?

控制器就像

 @RestController
public class HumanResourceController {

    @Autowired
    private HumanResourceService hRService;

    @RequestMapping(value = "/update/status/{password:.+}/{status}", method = RequestMethod.GET)
    public ResponseEntity<?> updateAcceptOrReject(@PathVariable("password") String password,
            @PathVariable("status") FileAcceptStatus status) {

        GenericResponse genericResponse = hRService.updateAcceptOrReject(password, status);
        return ResponseEntity.ok().body(genericResponse);
    }

}

【问题讨论】:

    标签: html spring spring-mvc spring-boot


    【解决方案1】:

    @RestController总是会返回json消息,所以你应该把它改成@Controller,然后你需要创建一个viewresolver来渲染静态html

    将所有 html 文件移动到 /WEB-INF/

    @Configuration
    @EnableWebMvc
    public class MvcConfiguration extends WebMvcConfigurerAdapter{
        @Bean
        public ViewResolver getViewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/");
            resolver.setSuffix(".html");
            return resolver;
        }
    
        @Override
        public void configureDefaultServletHandling(
                DefaultServletHandlerConfigurer configurer) {
            configurer.enable();
        }    
    }
    
    
    @Controller
    public class HumanResourceController {
    
        @Autowired
        private HumanResourceService hRService;
    
        @RequestMapping(value = "/update/status/{password:.+}/{status}", method = RequestMethod.GET)
        public String updateAcceptOrReject(@PathVariable("password") String password,
                @PathVariable("status") FileAcceptStatus status) {
    
            GenericResponse genericResponse = hRService.updateAcceptOrReject(password, status);
            // you can return various view according the generic response http code
            return "alreadyaccepted";
        }
    
    }
    

    【讨论】:

    • 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 2013-05-27
    • 2010-12-27
    • 2016-09-12
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    相关资源
    最近更新 更多