你有课堂示例源码吗?下载不了
不理解你的“值一直未中”什么意思。是返回页面没有变化吗?
如果是这个问题,
老师的后台代码(4-5binding)的doSave方法中有一句:course.setCourseId(123),就是这句话,是的无论新增了什么课程,返回的页面都是调用了courseId=123的这个课程的信息,所以才导致看起来doSave之后课程的显示内容一点都没有变化。
@ModelAttribute 注解如果用在方法参数上的话,跟不使用没区别;但如果用在方法上,则会在执行注解为@RequestMapping的方法前被调用,为模型对象入参,接着执行@RqeustMapping注解的方法,就可以来调用模型对象进行操作了。
课程的右下边
当@ModelAttribute放在方法参数上时,和使用这个标签没有区别。当将@ModelAttribute放在方法上标识的时候,表示执行这个controller类中的@RequestMapping标注的方法前都要先执行标有@ModelAttribute的方法。
如果前后端分离开发,前后端之间的数据交互就应该全部是通过json,spring mvc中能够直接把前端传过来的json数据通过@requestBody注解转化成你需要的数据类型,同时@responseBody也能把你后端的数据类型转化成json数据传到前端
看看你设置的日志级别,日志级别从高到低分为:
A:off 最高等级,用于关闭所有日志记录。
B:fatal 指出每个严重的错误事件将会导致应用程序的退出。
C:error 指出虽然发生错误事件,但仍然不影响系统的继续运行。
D:warm 表明会出现潜在的错误情形。
E:info 一般和在粗粒度级别上,强调应用程序的运行全程。
F:debug 一般用于细粒度级别上,对调试应用程序非常有帮助。
G:all 最低等级,用于打开所有日志记录。
上面这些级别是定义在org.apache.log4j.Level类中。Log4j只建议使用4个级别,优先级从高到低分别是error,warn,info和debug。通过使用日志级别,可以控制应用程序中相应级别日志信息的输出。
例如,如果使用b了info级别,则应用程序中所有低于info级别的日志信息(如debug)将不会被打印出来。
尝试修改一下日志级别。。。
我的eclipse也没有GBK编码,也是用notepad打开再复制进去的。而且老师的导进来以后。只有两个页面得换编码,别的还不需要换。
你的requestmapping参数没配好
交给viewresolver处理
如果你只是修改前端代码,你就无需重新部署,只要保存就行了;如果你修改后台代码,是需要重新部署的。
是的,自动对应赋值
params1=123¶ms2=123
加了redirect是访问路径
没有redirect才会加.jsp
你自己打印的日志信息肯定有输出的,但可能被springframework的日志输出刷屏了。可以自己添加log4j的配置文件log4j.properties到classes根目录,定义你的日志输出方式以及级别,如下:
#可以设置级别:debug>info>error
#设置成error就不会打印debug信息而只有报错的时候才有日志输出了
log4j.rootLogger=error,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
#样式为TTCCLayout
#log4j.appender.consoleAppender.layout=org.apache.log4j.TTCCLayout
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=[%p] [%t] [%c] [%l] %m%n
return "forward:/view2/"+course.getCourseId();
url每一个细微的部分都可以映射
日志打印了两次。把log4j里面的debug后面的cons去掉
流程应该是 1添加 2展示。在添加的时候已经把数据持久化到数据库了。然后跳转到展示页面的时候会通过传递过去的课程ID去数据库里查出数据封装到course对象里,再传递到页面展示的。开始写死的假数据只是为了展示,实际是要从数据库里获得,只要courseId正确传递过去,得到的数据就是数据库里对应的真实数据了。
@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity.此时分两种情况:从Model中获取或者从Form表单/URL参数中获取,如果是后者,则不添加此注释实际也能拿到对象。
但同时@ModelAttribute也可以放在方法注解里, 如果把@ModelAttribute放在方法的注解上时,代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法。
重定向,后面是参数
关联实体用的,前台表单中的值直接存放到实体中,不需要一个一个的得到值
这个问题我也遇到了,两个方案解决。1. 用eclipse再带的插件启动jetty. 2. 重新编辑出问题的类,调整编码。
这个问题涉及到转发和重定向~~给个参考网页:http://zhidao.baidu.com/question/538384198.html?fr=iks&word=%D7%AA%B7%A2%BA%CD%D6%D8%B6%A8%CF%F2&ie=gbk