慕虎7863013
2017-03-19 17:38
这老师是很努力,奈何没有教师的天赋,很多细节没必要讲,讲了以后反而干扰了,而且次序讲的不好。第一次年龄输入abc的时候,没有进入success.jsp的时候你讲链接是LoginAction.action干什么啊,我还以为会造成链接的改变,其实成功了地址栏也是LoginAction.action啊,你不如说跳转失败,还是在log.jsp不就行了吗。只是url已经不在log.jsp了,但是没有告诉用户错在哪里,需要后续改进。次序方面,你直接说如果自己写了this.addFiledError的话就要自己加上return INPUT或者在valiate里写不就行了嘛?否则会干扰的。
这个同学不合格,理解错了老师得意思却自以为抓住了老师的错误,不说你有没有资格批评,就说说你说的那几点错误。
你说的第一个1.年龄输入abc的时候,没有进入success.jsp的时候你讲链接是LoginAction.action
解答:Structs2的执行过程是获得用户请求之后读取struts.xml配置文件,而老师写的是先通过
login.jsp
来获取用户输入数据提交表单再传给action处理类来判断应该返回什么字符串,之后读取配置文件来选择返回那个jsp文件。
if(user.getAge() == null || "".equals(user.getAge())){ this.addFieldError("userage", "年龄不能为null"); return INPUT; } return SUCCESS;
所以不管返回那个文件,它都要经过action方法来执行操作,<action><action/>相当于调用那个界面的一张名片,最后判断执行那些操作,所以要返回的链接相当于都写到了action上。
第二个2.你直接说如果自己写了this.addFiledError的话就要自己加上return INPUT或者在valiate里写不就行了嘛?否则会干扰的。
解答:return INPUT;这行代码返回的一个字符串,是在ActionSupport类中的定义的一个常量,源码里是这样定义的。
public static final java.lang.String SUCCESS = "success"; public static final java.lang.String NONE = "none"; public static final java.lang.String ERROR = "error"; public static final java.lang.String INPUT = "input"; public static final java.lang.String LOGIN = "login"; public abstract java.lang.String execute() throws java.lang.Exception;
说白了,它也只是一个标记,可以选择返回,也可以不返回,完全看需求,具体你说的干扰,我完全不理解。
犯这些错误,只能说明你是一个不合格的学生,没有资格说老师教的不好,一边吃的肉一边说肉做的难吃,在我家里你连饭都没得吃。
中立态度!不过还是要感恩!
Struts2入门
95048 学习 · 481 问题
相似问题