- 浏览: 5660 次
- 性别:
- 来自: 武汉
-
最近访客 更多访客>>
文章分类
最新评论
-
ybj316:
有js代码吗,可否共享?
js调用webservice客户端编写 -
itcyt:
yanglinumber1 写道谢谢大家的关注,我已经搞定。。 ...
js调用webservice客户端编写 -
yanglinumber1:
谢谢大家的关注,我已经搞定。。谢谢!
js调用webservice客户端编写 -
lijiang:
struts2入门的文章
struts2第三篇:踏入struts2世界第一步 -
yanglinumber1:
<div class="quote_title ...
struts2第三篇:踏入struts2世界第一步
/*
大家如果喜欢学习struts2可以随时来看看,欢迎大家的到来!
由于我的时间有限,很多地方都不能详细的讲解,因此需要大家的理解和支持,其实学这个,我也只能做一下指导,如果大家有不懂的可以留言询问。大家互相学习学习!
我会在每一天出一篇struts2讲解。如果有事耽搁了,请大家原谅!
*/
/*
大家注意代码中标有红记的地方,是学习的重点。
*/
第一步(view编写):(login.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!-- 导入struts2的主要标签库,在struts2中去掉了很多不必要的标签,也将标签全部整合在了一起,更方便开发-->
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<s:form action="login">
<!--注意:login不是与action直接对应,而是通过struts.xml映射文件中的
name=“login”对应-->
<s:textfield name="username" label="用户名"></s:textfield>
<s:password name="password" label="密码"></s:password>
<s:submit label="提交"></s:submit>
<!--在struts2中,表单提交后自动被传给action,其中的set方法会将值暂时保存在内存中,以供使用-->
</s:form>
/*
利用标签创建提交表单,相信大家看得懂。
*/
</body>
</html>
/*
*/
(result.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'result.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
${requestScope.username}
<br>
${requestScope.password }
</body>
<!--jsp中的条件表达式,获取forward传递的值,在struts2中,如没进行具体设置,默认情况是服务器端跳转,也就是所说的forword,而并不是请求跳转Redirect-->
</html>
第二步(action)
package com.newstar.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 9038781564022152594L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String execute(){
if("hello".equals(username.trim())&&"world".equals(password.trim())){
return "success";
}else{
this.addFieldError("username","username or password is not right!");
return "failer";
}
/*
execute()只做调控作用,业务逻辑不应该在这里完成,这里因为比较简单,我才写在了这里。业务逻辑交给业务层,我以MVC模式举例。
*/
}
@Override
public void validate() {
if(username==null||"".equals(getUsername().trim())){
this.addFieldError("username", "username is null");
}
if(password==null||"".equals(getPassword().trim())){
this.addFieldError("password", "password is null");
}
}
/*
这个方法是做表单验证的,是struts2中很重要的一部分,后面我会作具体介绍。相信这点代码还是难不倒大家的。
*/
}
第三步(web.xml)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<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的精华部分,大家看好了,大家记得struts1中是怎样配置的吧,这个是不是简单的多了呢。这个就是对所有用户输入数据的过滤器映射,也就是说只要用户有提交数据(不管是空值还是其他确切的值)都会首先经过struts2中的过滤器过滤,然后才传下去。就这么简单,大家感觉到乐趣了吧。。呵呵。。come on everyone!-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
最后一步(struts.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="struts" extends="struts-default">
<action name="login" class="com.newstar.struts2.action.LoginAction">
<result name="input">/login.jsp</result>
<result name="success">/result.jsp</result>
<result name="failer">/login.jsp</result>
</action>
</package>
<!--这里就有点难度了,不过不用怕,后期我会向大家讲解。现在只需简单的了解就足够了package是继承于的web work,其实它的够着方式也是蛮有趣的。action内面的配置其实很简单,相信大家根据英文都能看懂了,就不说了-->
</struts>
好了,今天的就到这了,GOOD BYE!
评论
我这样配置怎么报错了?<%@ taglib prefix="s" uri="/struts-tags"%> 这个提示找不到标签什么的...
注意两点:
1.标签地址。
2。标签库。
但是在地趾栏打链接http://localhost:8080/login.action
或者表单都可以找到为什么呢,我用的是struts2 spring 2.5 hibernate3.2
希望后期相继的发些Struts2+Spring+Hibernate的案例.
我正在学习SSH综合开发
<p style='text-align: left;'><span style=''><strong>大家如果喜欢学习struts2可以随时来看看,欢迎大家的到来!</strong></span></p>
<p style='text-align: left;'><strong><span style=''><span style='color: #000000;'>由于我的时间有限,很多地方都不能详细的讲解</span><span style='color: #000000;'>,因此需要大家的理解和支持,其实学这个,我也只能做一下指导,如果大家有不懂的可以留言询问。大家互相学习学习!</span></span></strong></p>
<p style='text-align: left;'><strong><span style=''>我会在每一天出一篇struts2讲解。如果有事耽搁了,请大家原谅!</span></strong></p>
<p style='text-align: left;'><span style=''>*/</span></p>
<p style='text-align: left;'><span style=''>/*</span></p>
<p><span style=''>
</span></p><p style='text-align: left;'><strong><span style=''>大家注意代码中标有红记的地方,是学习的重点。</span></strong></p>
<p/>
<p style='text-align: left;'><span style=''>*/</span></p>
<p style='text-align: center;'><span style=''>第一步(view编写):(login.jsp)</span></p>
<p style='text-align: left;'><span style=''><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><br/><span style='color: #ff0000;'><strong><%@ taglib prefix="s" uri="/struts-tags"%></strong></span></span></p>
<p style='text-align: left;'><span style=''><strong><span style='color: #ff0000;'><!-- 导入struts2的主要标签库,在struts2中去掉了很多不必要的标签,也将标签全部整合在了一起,更方便开发--></span></strong><br/><%<br/> String path = request.getContextPath();<br/> String basePath = request.getScheme() + "://"<br/> + request.getServerName() + ":" + request.getServerPort()<br/> + path + "/";<br/>%></span></p>
<p style='text-align: left;'><span style=''><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br/><html><br/> <head><br/> <base href="<%=basePath%>"></span></p>
<p style='text-align: left;'><span style=''> <title>My JSP 'login.jsp' starting page</title></span></p>
<p style='text-align: left;'><span style=''> <meta http-equiv="pragma" content="no-cache"><br/> <meta http-equiv="cache-control" content="no-cache"><br/> <meta http-equiv="expires" content="0"><br/> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><br/> <meta http-equiv="description" content="This is my page"><br/> <!--<br/> <link rel="stylesheet" type="text/css" href="styles.css"><br/> --></span></p>
<p style='text-align: left;'><span style=''> </head></span></p>
<p style='text-align: left;'><span style=''> <body><br/> <span style='color: #ff0000;'><strong><s:form action="login"></strong></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong><!--注意:login不是与action直接对应,而是通过struts.xml映射文件中的 </strong></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong>name=“login”对应--><br/> <s:textfield name="username" label="用户名"></s:textfield><br/> <s:password name="password" label="密码"></s:password><br/> <s:submit label="提交"></s:submit></strong></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong><!--在struts2中,表单提交后自动被传给action,其中的set方法会将值暂时保存在内存中,以供使用--><br/> </s:form></strong></span></span></p>
<p style='text-align: left;'><strong><span style=''>/*</span></strong></p>
<p style='text-align: left;'><strong><span style=''>利用标签创建提交表单,相信大家看得懂。</span></strong></p>
<p style='text-align: left;'><strong><span style=''>*/</span></strong></p>
<p style='text-align: left;'><span style=''> </body><br/></html></span></p>
<p style='text-align: left;'><span style=''>/*</span></p>
<p style='text-align: left;'> </p>
<p style='text-align: left;'><span style=''>*/</span></p>
<p style='text-align: center;'><span style=''>(result.jsp)</span></p>
<p style='text-align: left;'><span style=''> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><br/><%<br/> String path = request.getContextPath();<br/> String basePath = request.getScheme() + "://"<br/> + request.getServerName() + ":" + request.getServerPort()<br/> + path + "/";<br/>%></span></p>
<p style='text-align: left;'><span style=''><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><br/><html><br/> <head><br/> <base href="<%=basePath%>"></span></p>
<p style='text-align: left;'><span style=''> <title>My JSP 'result.jsp' starting page</title></span></p>
<p style='text-align: left;'><span style=''> <meta http-equiv="pragma" content="no-cache"><br/> <meta http-equiv="cache-control" content="no-cache"><br/> <meta http-equiv="expires" content="0"><br/> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><br/> <meta http-equiv="description" content="This is my page"><br/> <!--<br/> <link rel="stylesheet" type="text/css" href="styles.css"><br/> --></span></p>
<p style='text-align: left;'><span style=''> </head></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong> <body><br/> ${requestScope.username}<br/> <br><br/> ${requestScope.password }<br/> </body></strong></span></span></p>
<p style='text-align: left;'><span style=''><strong><span style='color: #ff0000;'><!--jsp中的条件表达式,获取forward传递的值,在struts2中,如没进行具体设置,默认情况是服务器端跳转,也就是所说的forword,而并不是请求跳转Redirect--></span></strong><br/></html></span></p>
<p style='text-align: center;'><span style=''>第二步(action)</span></p>
<p style='text-align: left;'><span style=''> package com.newstar.struts2.action;</span></p>
<p style='text-align: left;'><span style=''>import com.opensymphony.xwork2.ActionSupport;</span></p>
<p style='text-align: left;'><span style=''>public class LoginAction extends ActionSupport {</span></p>
<p style='text-align: left;'><span style=''> /**<br/> * <br/> */<br/> private static final long serialVersionUID = 9038781564022152594L;<br/> private String username;<br/> private String password;<br/> public String getUsername() {<br/> return username;<br/> }<br/> public void setUsername(String username) {<br/> this.username = username;<br/> }<br/> public String getPassword() {<br/> return password;<br/> }<br/> <br/> public void setPassword(String password) {<br/> this.password = password;<br/> }<br/> <span style='color: #ff0000;'><strong>public String execute(){<br/> if("hello".equals(username.trim())&&"world".equals(password.trim())){<br/> return "success"; <br/> }else{<br/> this.addFieldError("username","username or password is not right!");<br/> return "failer";<br/> }<br/><span style='color: #008000;'>/*</span></strong></span></span></p>
<p style='text-align: left;'><strong><span style=''>execute()只做调控作用,业务逻辑不应该在这里完成,这里因为比较简单,我才写在了这里。业务逻辑交给业务层,我以MVC模式举例。</span></strong></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong><span style='color: #008000;'>*/<br/></span> }<br/> </strong><strong><span style='color: #ff0000;'>@Override<br/> public void validate() {<br/> if(username==null||"".equals(getUsername().trim())){<br/> this.addFieldError("username", "username is null");<br/> }<br/> if(password==null||"".equals(getPassword().trim())){<br/> this.addFieldError("password", "password is null");<br/> }<br/> }</span></strong></span></span></p>
<p style='text-align: left;'><span style=''><strong>/*</strong></span></p>
<p style='text-align: left;'><strong><span style=''>这个方法是做表单验证的,是struts2中很重要的一部分,后面我会作具体介绍。相信这点代码还是难不倒大家的。</span></strong></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><strong><span style='color: #008000;'>*/<br/></span></strong><span style='color: #333333;'>}</span></span></span></p>
<p style='text-align: center;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'>第三步(web.xml)</span></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><br/><span style='color: #000000;'><?xml version="1.0" encoding="UTF-8"?><br/><web-app version="2.5" xmlns="</span><a href='http://java.sun.com/xml/ns/javaee'><span style='color: #000000;'>http://java.sun.com/xml/ns/javaee</span></a><span style='color: #000000;'>"<br/> xmlns:xsi="</span><a href='http://www.w3.org/2001/XMLSchema-instance'><span style='color: #000000;'>http://www.w3.org/2001/XMLSchema-instance</span></a><span style='color: #000000;'>"<br/> xsi:schemaLocation="</span><a href='http://java.sun.com/xml/ns/javaee'><span style='color: #000000;'>http://java.sun.com/xml/ns/javaee</span></a><span style='color: #000000;'> <br/> </span><a href='http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd'><span style='color: #000000;'>http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</span></a></span><span style='color: #000000;'>"></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'><span style='color: #ff0000;'><strong> <filter><br/> <filter-name>struts2</filter-name><br/> <filter-class><br/> org.apache.struts2.dispatcher.FilterDispatcher<br/> </filter-class><br/> </filter><br/> <filter-mapping><br/> <filter-name>struts2</filter-name><br/> <url-pattern>/*</url-pattern><br/> </filter-mapping></strong></span></span></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'><strong><span style='color: #008000;'><!--这是struts2的精华部分,大家看好了,大家记得struts1中是怎样配置的吧,这个是不是简单的多了呢。这个就是对所有用户输入数据的过滤器映射,也就是说只要用户有提交数据(不管是空值还是其他确切的值)都会首先经过struts2中的过滤器过滤,然后才传下去。就这么简单,大家感觉到乐趣了吧。。呵呵。。come on everyone!--><br/></span></strong> <welcome-file-list><br/> <welcome-file>login.jsp</welcome-file><br/> </welcome-file-list><br/></web-app></span></span></span></p>
<p style='text-align: center;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'>最后一步(struts.xml)</span></span></span></p>
<p style='text-align: left;'><span style=''><?xml version="1.0" encoding="UTF-8" ?></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'><!DOCTYPE struts PUBLIC<br/> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br/> "</span><a href='http://struts.apache.org/dtds/struts-2.0.dtd'><span style='color: #000000;'>http://struts.apache.org/dtds/struts-2.0.dtd</span></a><span style='color: #000000;'>"><br/><struts><br/> <span style='color: #ff0000;'><strong> <package name="struts" extends="struts-default"><br/> <action name="login" class="com.newstar.struts2.action.LoginAction"><br/> <result name="input">/login.jsp</result><br/> <result name="success">/result.jsp</result><br/> <result name="failer">/login.jsp</result><br/> </action><br/> </package></strong></span></span></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'><span style='color: #008000;'><strong><!--这里就有点难度了,不过不用怕,后期我会向大家讲解。现在只需简单的了解就足够了package是继承于的web work,其实它的够着方式也是蛮有趣的。action内面的配置其实很简单,相信大家根据英文都能看懂了,就不说了--></strong></span><br/></struts></span></span></span></p>
<p style='text-align: left;'><span style=''/></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'><!--大家互相交流,纯属学习,无商业意义,如欲转载,请联系本人</span></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'>QQ:471723842 --></span></span></span></p>
<p style='text-align: left;'><span style=''><span style='color: #ff0000;'><span style='color: #000000;'>好了,今天的就到这了,GOOD BYE!</span></span></span></p></div><br/>写的很好
相关推荐
该系统的实现主要分为三个步骤:第一步,设计数据库 schema 和建立数据库连接;第二步,编写业务逻辑代码,实现用户管理、信息发布、咨询服务和交流平台等功能;第三步,测试和调试系统,确保系统的稳定性和安全性。...
成为一名Java程序员的第一步是设置你的开发环境。这通常包括安装Java Development Kit (JDK),它是Java开发的基础,提供了编译、运行和调试Java应用程序所需的所有工具。此外,集成开发环境(IDE)如Eclipse、IntelliJ...
1. **Java语法**:这是学习Java的第一步,包括但不限于变量、数据类型、运算符、控制流语句(如if/else、switch/case、for/while循环等)、数组等基本概念。 2. **面向对象编程(OOP)**:理解类与对象的概念,学会...
对于初学者来说,安装JDK是学习JAVA的第一步。 - **JDK组成**: - JVM (Java Virtual Machine): JAVA虚拟机,负责执行编译后的JAVA字节码。 - JRE (Java Runtime Environment): JAVA运行环境,包含JVM以及JAVA类库...
《Spring快速入门教程》 Spring框架是Java开发领域中的一款重量级开源框架,以其模块化、松耦合、面向切面编程...这份快速入门教程将是你踏入Spring世界的第一步,希望你能从中受益匪浅,继续探索Spring的广阔天地。