开发者社区> 问答> 正文

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

这是controller:

这是配置文件:

这是properties文件:

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

@罗格林 ,帮忙看看

展开
收起
爱吃鱼的程序员 2020-06-08 16:16:50 491 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    首先,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错误页面就是对应第二种的情况

    2020-06-08 16:17:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载