-
这个方法我只是针对通配符使用的
我看到视频里面两个方法好像都是return SUCCESS;所以改了url地址一直都无法跳转到其他两个页面,如果有和我一样的情况的同学可以把success改为"add"和"update",这样就没问题了
查看全部 -
Struts官方网站:http://struts.apache.org/
历史版本:http://archive.apache.org/dist/struts/
查看全部 -
搭建Struts环境步骤:
查看全部 -
Struts2环境:
查看全部 -
Struts2
查看全部 -
数据类型转换错误时会返回INPUT
(1)校验方法在LoginAction中添加validate()
public void validate(){ if(user.getUsername()==null||"",equals(user.getUsername)){ this.addFieldError("username","用户名不可为空!"); } }
(2)表单页面加入struts2标签
<%@ taglib prefix="s" uri="/struts-tags" %> <input type="text" name="username" /><s:fielderror name="username"></s:fielderror>
查看全部 -
action接收参数
有表单如下:
<form action="LoginAction" method> <input type="text" name="username" /> <input type="password" name="password" /> <input type="submit" value="提交" /> </form>
创建LoginAction,添加login()
public String login(){ //******** return SUCCESS; }
1、属性接收
//在LoginAction中建立username、password属性 private String username; private String password; //实现其get、set方法 //login()可以调用username、password
注:属性接收简单,但对于属性多的情况不利于代码维护
2、DomainModel接收
(1)创建user类
public class User{ private String username; private String password; //实现其get、set方法 }
(2)LoginAction中声明User
private User user; //实现User的get、set方法
注:在form表单中,input的name要指定类名如user.username.
3、实现ModelDriven接口
LoginAction实现ModelDriven接口
public class LoginAction extends ActionSupport implements ModelDriven<User>{ //用ModelDriven必须实例化User private User user=new User(); public String login(){ return SUCCESS; } public User getModel(){ return user; }
4、复杂参数接收
(1)user类包含ListBook类
public class User{ private String username; private String password; private List<ListBook> listbook; //实现其get、set方法 }
(2)新建ListBook类
public class ListBook{ private String bookname; private int price; //实现其get、set方法 }
(3)form表单中添加
<input type="text" name="listbook[0].bookname"> <input type="text" name="listbook[0].price"> <input type="text" name="listbook[1].bookname"> <input type="text" name="listbook[1].price">
(4)login()中获取
String book1=user.getListBook().gte(0).getBookName(); String book2=user.getListBook().gte(1).getBookName();
查看全部 -
1、多个配置文件可以用<include>,在struts.xml中统一配置
<include file="xx.xml"></include>
2、设置常量(此方法可以顶替struts.properties文件)
<constant name="常量名" value="常量值"></constant>
3、动态方法调用+通配符使用
<action name="*_*" method="{2}" class="包全名.{1}"> <!-- *_*中*代表任意字符,_代表固定格式 {1}{2}是第几个*所代表的字符串 例:hello_add {1}=hello【action名】;{2}=add【action中方法名】 调用hello.acton中的add() --> <result>/xx.jsp</result> </action>
4、默认action(用来处理找不到相应action时,统一跳到一个友好界面)
<default-action-ref name="aaa"></default-action-ref> <action name="aaa"> <result>/xx.jsp</result> </action>
注:当同包中存在action name="*_*"时,访问路径写成hello_aaa不能跳到指定的目标。用为会默认先匹配action部分,匹配成功后就不再找默认action了。
5、struts2后缀
<!-- struts.xml中添加常量修改action后缀 --> <constant name="struts.action.extension" value="html"></constant> <!-- 1、后缀再写action报错,要改成.html 2、该常量也可以在struts.properties中配置 struts.action.extension=action,do,struts2 3、也可以在过滤器<filter>中配置 <init-param> <param-name>struts.action.extension</param-name> <param-value>do</param-value> </init-param> -->
查看全部 -
Struts2是基于MVC设计模式的Web应用程序框架,能节省Web应用开发时间
Struts实例程序创建步骤(工具Myeclipse10+tomcat7+jdk1.7):
1、创建Web Project
2、导入jar包,在src下建立struts.xml
3、打开web.xml,添加
<filter> <filter-name>[过滤器名]</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter>
<filter-mapping> <filter-name>[过滤器名]</filter-name> <url-pattern>/*</url-pattern> <!-- /*代表过滤所有路径 --> </filter-mapping>
4、打开struts.xml,假如文档类型定义DTD(用myeclipse直接添加struts后不用会搜懂添加DTD)
5、创建action,新建class(命名hello)继承ActionSupport类,默认执行ActionSupport的execute() 执行成功返回SUCCESS.
6、在struts.xml中配置action
<package name="default" namespace="/" extends="struts-default"> <!-- package name="default" 是默认包名,可以自定义,用于被其他包继承 namespace="/" 命名空间,可以指定可以默认 extends="default" 该包所继承的包 --> <action name="hello" method="" class="包全名.hello"> <result name="">/result.jsp</result> <!-- result 的name默认是SUCCESS 也可以是其他action中传回的字符串 --> </action> </package>
7、在WebRoot下创建result.jsp
8、发布运行项目,打开浏览器访问http://localhost:8080/[项目名]/hello.action。
注:myeclipse最高支持jdk1.7+tomcat7.x
本机最初配置是jdk1.8,运行项目后报错如下
The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
查看全部 -
返回 结果类型 中的 type
查看全部 -
处理结果类型 result 的type
查看全部 -
处理结果类型中 :
局部结果 <action> 中套入 <result>
全局结果 <global-result> 中套入 <result>
查看全部 -
在struts2 的结果类型中
使用 result标签 若不填name属性 则采用默认值success
查看全部 -
struts2 返回结果是字符串 ,
return "success"
找到对应视图
查看全部 -
struts2 调用方式
查看全部
举报