Struts:第一个小程序

崎岖的诞生过程

说明一下,这并非是说代码难敲什么的。从昨晚敲完书本上的代码后,一直就不能正常的测试!!!觉得有点迷茫,甚至有点灰心。。。可是,可是,转念一想,这不是长姿势的好机会么?于是,慢慢找答案吧。

OK!回到正题,简单说说我遇到的几个错误,以及解决方案.

小应用简述

这是一个登陆验证的特别简单的例子,共有以下几个配置文件:

  1. 登陆页:index.jsp
  2. 欢迎页:welcome.jsp
  3. Action:LoginAction

这个例子就是从登陆页输入用户名和密码,然后发送至Action处理,如果用户名和密码正确,则跳转到weclome.jsp页面,否则留在index.jsp页面.

Struts logo
image-1946

struts2 action class not found

这是我使用的搜索词,大致意思是:当表单提交的时候,访问不了Action…这可苦逼了,第一次配置Struts就遇到这事,心中难免失落……不过也不能不做啊!于是找各种答案,各种尝试,反正就是访问不了.

其实解决方案并不是很难,在提交表单的时候写成下面这个样子就行了:



<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Insert title here









Struts2 抛 java.lang.NoSuchMethodException

这个方法指的是找不到指定的方法,所以抛出这个异常。

抛出这个异常的原因是,下面这段代码写成这样了:









/welcome.jsp
/index.jsp


重复的action

这个问题我还没有找到解决办法,具体错误如下:每成功的登录一次,URL中就会重复一次[Action类所在包的包名,例如包名是:actions],那么每登录成功一次,包名就会多一个.
形如:

localhost:8080/TEST/A10/actions/[actions...+]/LoginAction.action

完整的代码

测试可用.
系统环境如下:

  • tomcat 7.0.35
  • Eclipse 4.2
  • struts 2
  • jdk 1.7

index.jsp[首页][所在文件夹:WebContent]:


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Insert title here










welcome.jsp[欢迎页][所在文件夹:WebContent]:


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>




Insert title here


登录成功,欢迎您,



struts.xml[struts核心配置文件][所在文件夹:WebContent/WEB-INF/classes/]:








/welcome.jsp
/index.jsp



web.xm[所在文件夹:WebContent/WEB-INF/]l:



SSH

index.jsp


struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*



Action:LoginAction.java[Java Resources:src>[package:action_struts]]:


package action_struts;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

private String username ;//用户名
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpass() {
return userpass;
}
public void setUserpass(String userpass) {
this.userpass = userpass;
}
private String userpass ;//密码.

public String execute(){//主方法
if("mr".equalsIgnoreCase(username)&& "123".equals(userpass)){//匹配用户名和密码
return SUCCESS;//匹配成功进入欢迎界面.
}
return LOGIN;//匹配失败进入登录界面
}

}

struts的jar包请放在WebContent/WEB-INF/lib/文件夹内,我是导入了所有jar包.
一切弄好之后:打开浏览器,输入[localhost:8080/[项目名]/index.jsp],就能测试了[用户名:mr,密码:123].

继续前行,COM ON!~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据