需要继承ActionSupport类,struts.xml里面需要配置result接收。具体可以贴出你的代码看看。或者看404报找不到哪个文件
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
解决了,添加一个过滤设置就好了
action 里有return INPUT了吗?
莫名哦
因为form标签提交后也返回了一个错误的提示
666666
有这个标签的
1.redirect:action处理完后重定向到一个视图资源(如:jsp页面),请求参数全部丢失,action处理结果也全部丢失。
2.redirectAction:action处理完后重定向到一个action,请求参数全部丢失,action处理结果也全部丢失。
3.chain:action处理完后转发到一个action,请求参数全部丢失,action处理结果不会丢失。
user.getUsername()==null判断用户名是否为空
"".equals(user.getUsername())判断用户名是否为空字符串
因为未经第一个判断直接进行第二个判断,当用户名为null时会发生空指针异常
第一个判断用户名是否为null(空)
第二个判断用户名是否为""(空字符串)
""并不等于null
在jsp中添加了么:<S:fielderror fieldName="username"></S:fielderror>
这个不是包 是Struts的一个标签
我用的也是2.5,应该是可以的。
报404错误的请注意下struts.xml文件中LoginAction中需要添加一个name值为input的result
struts.xml页部分代码如下:
<action name="LoginAction" method="login" class="action.LoginAction"> <result>/success.jsp</result> <result name="input">/login.jsp</result> </action>
好吧<s:fielderror />就是输出所有的错误信息 name是标示而已...
<s:fielderror>
<s:param>field1 </s:param>
<s:param>field2 </s:param>
</s:fielderror>
才是针对字段
这个同学不合格,理解错了老师得意思却自以为抓住了老师的错误,不说你有没有资格批评,就说说你说的那几点错误。
你说的第一个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;
说白了,它也只是一个标记,可以选择返回,也可以不返回,完全看需求,具体你说的干扰,我完全不理解。
犯这些错误,只能说明你是一个不合格的学生,没有资格说老师教的不好,一边吃的肉一边说肉做的难吃,在我家里你连饭都没得吃。
把图贴出来吧
我已经找到解决办法了是拦截器校验冲突了。不知道怎摸解决,我把拦截器在、给注释掉了
<action name="loginAction" method="login" class="loginDemo.loginAction">
<result name="input">/success.jsp </result>
</action>
我知道了,因为<s:fielderror>写成了<s:filderror>。老是犯一些小错误。
<s:fielderror name="username"></s:fielderror>
真的粗心
您好,放前面是考虑防止前面的对象是NULL,这样会报错的。
JDK 是整个Java的核心,包括了Java运行环境、Java工具和Java基础类库。JDK是java development kit的缩写。是Java的SDK,java程序开发的工具包。
什么是JRE?
普通用户并不需要安装JDK来运行Java程序,而只需要安装JRE(Java Runtime Environment)。而程序开发者必须安装JDK来编译、调试程序。
什么是JDK?
顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。
(1)JSP页面中没有加入类似下面内容:
<%@ taglib prefix="s" uri="/struts-tags"%>
(2)拦截器不是/*
<filter>
<filter-name>struts2</filter-name>
<filter-class> org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
没有返回到登录界面吧
您好,这块属于Struts2的validator校验,后续会有相关课程给您讲解,敬请关注。