Actframework自动配置 与 乱码问题?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Actframework自动配置 与 乱码问题?报错

爱吃鱼的程序员 2020-06-08 16:16:50 63

这是controller:

这是配置文件:

这是properties文件:

访问页面,报错,及乱码:

@罗格林 ,帮忙看看

分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-08 16:17:04

    首先,404错误是因为你的IndexController.TO里面是空的.你需要在IndexController类上面加上@AutoConfig注解.然后在你的properties文件里面加上app.to=something之类的配置.这样你就不会看到404错误了

     

    然后来看乱码的问题.ACT只使用UTF8来输入输出编码,所以你看看浏览器是不是UTF8.还有你的IDE是不是UTF8.

     

    最后那个AppSettings类是从config示例中来的吧.那只是为了演示ACT注入配置参数的特性.实际项目中你不会那样用的.原则是哪个地方用配置,哪个地方声明配置参数.比如IndexController里面用了TO的配置,那你在IndexController里面声明TO配着参数是合理的.AppSettings就完全没有必要存在

    PS:关于404错误的一点额外话题.HTTP404表示资源找不到.在ACT中有两种情况系统自动返回404: 

    1. URL路由找不到处理器(常见的404)
    2. 如果一个处理器声明了返回值(比如上面的IndexController.hello),而返回结果为null.这个时候框架认定没有找到相应的资源.因此也会返回404响应. 

    对于这两种404响应ACT在开发模式下的错误报告页面有一些差别.第一种会默认显示应用中所有的路由.第二种会显示具体某个方法返回null值.你看到的404错误页面就是对应第二种的情况

    引用来自“罗格林”的评论

    首先,404错误是因为你的IndexController.TO里面是空的.你需要在IndexController类上面加上@AutoConfig注解.然后在你的properties文件里面加上app.to=something之类的配置.这样你就不会看到404错误了

     

    然后来看乱码的问题.ACT只使用UTF8来输入输出编码,所以你看看浏览器是不是UTF8.还有你的IDE是不是UTF8.

     

    最后那个AppSettings类是从config示例中来的吧.那只是为了演示ACT注入配置参数的特性.实际项目中你不会那样用的.原则是哪个地方用配置,哪个地方声明配置参数.比如IndexController里面用了TO的配置,那你在IndexController里面声明TO配着参数是合理的.AppSettings就完全没有必要存在

    PS:关于404错误的一点额外话题.HTTP404表示资源找不到.在ACT中有两种情况系统自动返回404: 

    1. URL路由找不到处理器(常见的404)
    2. 如果一个处理器声明了返回值(比如上面的IndexController.hello),而返回结果为null.这个时候框架认定没有找到相应的资源.因此也会返回404响应. 

    对于这两种404响应ACT在开发模式下的错误报告页面有一些差别.第一种会默认显示应用中所有的路由.第二种会显示具体某个方法返回null值.你看到的404错误页面就是对应第二种的情况

    试了下,浏览器默认错误页面是gbk,改为UTF-8就可以,但为什么会输出gbk呢

    引用来自“罗格林”的评论

    首先,404错误是因为你的IndexController.TO里面是空的.你需要在IndexController类上面加上@AutoConfig注解.然后在你的properties文件里面加上app.to=something之类的配置.这样你就不会看到404错误了

     

    然后来看乱码的问题.ACT只使用UTF8来输入输出编码,所以你看看浏览器是不是UTF8.还有你的IDE是不是UTF8.

     

    最后那个AppSettings类是从config示例中来的吧.那只是为了演示ACT注入配置参数的特性.实际项目中你不会那样用的.原则是哪个地方用配置,哪个地方声明配置参数.比如IndexController里面用了TO的配置,那你在IndexController里面声明TO配着参数是合理的.AppSettings就完全没有必要存在

    PS:关于404错误的一点额外话题.HTTP404表示资源找不到.在ACT中有两种情况系统自动返回404: 

    1. URL路由找不到处理器(常见的404)
    2. 如果一个处理器声明了返回值(比如上面的IndexController.hello),而返回结果为null.这个时候框架认定没有找到相应的资源.因此也会返回404响应. 

    对于这两种404响应ACT在开发模式下的错误报告页面有一些差别.第一种会默认显示应用中所有的路由.第二种会显示具体某个方法返回null值.你看到的404错误页面就是对应第二种的情况

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章