Struts2第一个Demo求指点

疯狂的茶杯盖 2014-07-23 02:22:25
本人初学Struts2,按照书上的示例自己写了一个Demo。配置文件及路径如下:

login.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
<form action= "<%=request.getContextPath() %>/login.action" method= "get">
User Name: <input type= "text" name= "username" />
Password: <input type= "password" name= "password" />
<input type= "submit" value= "Login" />
</form>
</body>
</html>

LoginAction.java:
package Struts2Test;

import com.opensymphony.xwork2.Action;

public class LoginAction implements Action{
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() throws Exception{
System.out.println( "here" );
if( username.equals( "Struts2" ) ){
return "LoginSuccess";
}else{
return "LoginFailure";
}
}
}

web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Struts Blank</display-name>

<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<package name="default" namespace="/" extends="struts-default">

<action name="login" class= "Struts2Test.LoginAction">
<result name= "LoginSuccess">/success.jsp</result>
<result name= "LoginFailure" >/failure.jsp</result>
</action>
</package>

</struts>



求巨师指点。
话说Java开发跟C、C++开发在调试方面还是很不一样。用Struts2时我根本不知道如何动手调试啊。
...全文
230 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzhen3416 2014-07-26
  • 打赏
  • 举报
回复
对于web。xml配置和struts.xml配置我也不太懂,不知道怎么映射的
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
最终解决了问题。在1F的基础上修改两个地方: 1、从Struts2的Struts2-blank示例中复制出所有的lib下的包,并导入到自己的项目中。 2、将项目的web.xml从WebContent移到WebContent/WEB-INF下。
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
我晕,包没导入齐全!



现在程序虽然还是有错,但是总算可以找到action了
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
多谢大家帮忙,但是程序仍然跑不起来。 我试过网上许多Struts2入门的DEMO,在我这里都同一个现象,就是找不到action。 但是Struts2自带的struts-blank是可以跑起来的。 所以我打算仔细分析一下struts-blank的代码。 谢谢大家了!
点滴寸土 2014-07-23
  • 打赏
  • 举报
回复
web.xml 位置不对,应该放在web-inf 下
hooo 2014-07-23
  • 打赏
  • 举报
回复
有可能是struts.xml位置有问题吧,看一下发布后的目录。。struts.xml是不是在WEB-INF\classes下面
m207248 2014-07-23
  • 打赏
  • 举报
回复
鼠标在项目名上右击选择properties,进入properties页面里应该有个tomcat,在那里面配置一下 上面一个框填你发布的名称,可以是同项目名,也可以是任意的,比如:Test 底下框里填:/WebContent 确认后,启动tomcat服务器 浏览器输入:http://localhost:8080/Test/login.jsp 记忆不是太深了
小灯光环 2014-07-23
  • 打赏
  • 举报
回复
引用 8 楼 xuzhigang_China 的回复:
[quote=引用 4 楼 wlwlwlwl015 的回复:] [quote=引用 3 楼 xuzhigang_China 的回复:] [quote=引用 2 楼 wlwlwlwl015 的回复:] 好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
谢谢! 按照你说的改了,但是故障仍旧啊! 另外能请教一下如何来调试用Java Web框架开发的程序呢? 还有,我用的Eclipse虽然每次在改过代码后都clean一下,但是貌似还是有缓存未清空的现象,请问这个是什么原因? 非常感谢![/quote] 和VisualStudio差不多啊,你可以在代码里打断点,然后run debug server 就行了~ clean没有必要~ 服务器端代码每次运行都会重新编译~ 你留个邮箱我给你发个标准的struts2的demo。你照着看一下。 你有很多写的不规范的地方。[/quote] 已收到邮件,非常感谢! 导入Eclipse后,jsp文件提示有错误,我估计是编码不一致的原因。但是运行之后是可以找到Action的,只是result转向貌似没找到,这个应该也是编码不一致的原因。然后我clean了一次,又关闭并重新启动了Eclipse,这个项目居然不能正常运行了,连action都找不到了! 第一次写JavaWeb项目就遇到这么奇怪的问题啊!![/quote] 第一个java web项目吗?建议你先了解一下java web项目的服务器端的结构,部署方法等等,我看你的页面在WEB-INF下,你的路径确配置的 <result name= "LoginSuccess">/success.jsp</result>,所以是不对的,你要这样写: <result name= "LoginSuccess">/WEB-INF/success.jsp</result>
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
引用 4 楼 wlwlwlwl015 的回复:
[quote=引用 3 楼 xuzhigang_China 的回复:] [quote=引用 2 楼 wlwlwlwl015 的回复:] 好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
谢谢! 按照你说的改了,但是故障仍旧啊! 另外能请教一下如何来调试用Java Web框架开发的程序呢? 还有,我用的Eclipse虽然每次在改过代码后都clean一下,但是貌似还是有缓存未清空的现象,请问这个是什么原因? 非常感谢![/quote] 和VisualStudio差不多啊,你可以在代码里打断点,然后run debug server 就行了~ clean没有必要~ 服务器端代码每次运行都会重新编译~ 你留个邮箱我给你发个标准的struts2的demo。你照着看一下。 你有很多写的不规范的地方。[/quote] 已收到邮件,非常感谢! 导入Eclipse后,jsp文件提示有错误,我估计是编码不一致的原因。但是运行之后是可以找到Action的,只是result转向貌似没找到,这个应该也是编码不一致的原因。然后我clean了一次,又关闭并重新启动了Eclipse,这个项目居然不能正常运行了,连action都找不到了! 第一次写JavaWeb项目就遇到这么奇怪的问题啊!!
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
引用 6 楼 m207248 的回复:
Eclipse项目要手动发布的,愚见。。
本人新手,第一次用Java,以前做C、C++的。能再详细一点吗?谢谢!
m207248 2014-07-23
  • 打赏
  • 举报
回复
Eclipse项目要手动发布的,愚见。。
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
引用 4 楼 wlwlwlwl015 的回复:
[quote=引用 3 楼 xuzhigang_China 的回复:] [quote=引用 2 楼 wlwlwlwl015 的回复:] 好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
谢谢! 按照你说的改了,但是故障仍旧啊! 另外能请教一下如何来调试用Java Web框架开发的程序呢? 还有,我用的Eclipse虽然每次在改过代码后都clean一下,但是貌似还是有缓存未清空的现象,请问这个是什么原因? 非常感谢![/quote] 和VisualStudio差不多啊,你可以在代码里打断点,然后run debug server 就行了~ clean没有必要~ 服务器端代码每次运行都会重新编译~ 你留个邮箱我给你发个标准的struts2的demo。你照着看一下。 你有很多写的不规范的地方。[/quote] 这样啊,谢谢哦! 952628593@qq.com
小灯光环 2014-07-23
  • 打赏
  • 举报
回复
引用 3 楼 xuzhigang_China 的回复:
[quote=引用 2 楼 wlwlwlwl015 的回复:] 好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
谢谢! 按照你说的改了,但是故障仍旧啊! 另外能请教一下如何来调试用Java Web框架开发的程序呢? 还有,我用的Eclipse虽然每次在改过代码后都clean一下,但是貌似还是有缓存未清空的现象,请问这个是什么原因? 非常感谢![/quote] 和VisualStudio差不多啊,你可以在代码里打断点,然后run debug server 就行了~ clean没有必要~ 服务器端代码每次运行都会重新编译~ 你留个邮箱我给你发个标准的struts2的demo。你照着看一下。 你有很多写的不规范的地方。
疯狂的茶杯盖 2014-07-23
  • 打赏
  • 举报
回复
引用 2 楼 wlwlwlwl015 的回复:
好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
谢谢! 按照你说的改了,但是故障仍旧啊! 另外能请教一下如何来调试用Java Web框架开发的程序呢? 还有,我用的Eclipse虽然每次在改过代码后都clean一下,但是貌似还是有缓存未清空的现象,请问这个是什么原因? 非常感谢!
小灯光环 2014-07-23
  • 打赏
  • 举报
回复
好像看错了,路径对着呢,你改改以下几个地方,试试: 1. <form action= "<%=request.getContextPath() %>/login.action" method= "post"> 红色的去掉,改成post请求。 2. public String username;     public String password; 换成public,get/set方法都去掉。 试一试。
小灯光环 2014-07-23
  • 打赏
  • 举报
回复
struts.xml要放在src下,你好像放在包下面了,改一下试试。
更新历史3.0: 环境:jdk1.5 tomcat5.5.数据库用oracle.如果不用oracle的话.可能菜单表的查询出不来.我的菜单表的查询允许选择上级菜单查询该菜单所对应的所有下级菜单.所以用了递归查询. criteria.add(Restrictions.sqlRestriction("MENUITEM_ID in(select a.MENUITEM_ID from Wuxin_MENUITEM a connect by prior a.MENUITEM_ID = a.PARENT_ID"+ " start with a.MENUITEM_ID = '"+parentId+"')" )); mysql和sqlserver不知道有没有start with这个sql. jar包:项目中除了使用了struts2,hibernate3.0和spring1.8以外(用spring2.0的包也可以.不能低于1.8的包.)还是用了junit,ajax,第三方的table组件.等等.所以需要下载相对应的包. 为了上传jar.我专门申请了一个网盘.所有下载地址在下载下来的这个rar包里面都有详细的介绍和说明. 说一下这个rar里面带的东西.除了源码外带了几篇文档.分别是关于项目中所使用的dwr的配置.table组件的配置说明文档.junit单元测试说明文档.还有我写这个例子时应该注意的一些东西.外加一些关于struts2和hibernate的技巧心得整理. 说一下这次3.0更新的内容.可能大家在我的博客里面已经看到了相关的日志.我懒.下面就把那个日志抽出来当说明了啊.有兴趣的就下载下来瞅瞅.偶也是菜鸟的.写的不好不要骂街啊..在此感谢各位网友的期待和支持. 这几天我终于闲下来了.也有时间开始写struts2的第三个框架版本了.主要是针对写了第二个版本之后的一些问题做一些回答才做得第三个版本.中间加一些小技巧之类的.不过我觉得还是值得一些关注的朋友期待的. 如果没有意外.这个版本应该是一个定型的版本了.在这段期间.有很多朋友问的问题大部分其实都已经不是struts2的范围了.有些都是hibernate和spring的.介于前两个版本都是单表.对hibernate的引用还是比较少的.这次索性写个多对多关系好了.打算写个权限系统好了.我就使用权限5张表.用户表,权限表.角色表.用户角色表和角色菜单表.(麻雀虽小...五脏俱全了啊...)当然这个写起来就费劲一些了.... 为了能够更好的使用各方面的技术.所以这次打算弄个大锅(弄个大锅也很累的.不过大家可能到时候配这个框架也就比较麻烦点了...不过我觉得还是能多学一下总是好的.) 说一下大锅的内容吧.自己写了个分页组件.(不是太好看...).现在ajax都已经不是什么新鲜东东了..我在里面配的是dwr..(这个简单些..其他的我看着晕...).没有自己写页面输出.我使用的table组件是:eXtremeComponents.自我感觉这个组件比较好.所以把这个组件配入进来了.随着这篇文章的发布.我会陆续在博客中更新相关针对与当前项目模块的关于struts2的一些知识点.当作大家一起进步了... 也希望各位高人多多指点啊... 这个版本起名为Struts2Test3.0.以后的日志相关内容就为关于Struts2Test3.0例子的相关内容.

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧