180010265_雷竣翔
weixin_慕仔2094236
因为要和你的Action类名一致
qq_与赠_03193390
在action中定义好方法并写出返回的字符串,然后在struts.xml文件中对action进行配置,来实现页面的跳转
慕粉3971981
<package name="default" namespace="/" extends="struts-default"
strict-method-invocation="false">改下这个试试
飞鱼乀
终于搞明白了 原来是 我的myecipse自动生成的Struts2.1驱动包和Hibernate驱动的包冲突了。那个包是antlr-2.7.7.jar 把Struts2中的这个包删除就好了
慕无忌5903725

添加allowed-method, 参考 https://www.jianshu.com/p/b6c961a1a141
ld待续
解决了吗
慕田峪7378203
add和update的jsp文件建了吗
qq_阳光下的海风_0
<result name="a">/{1}.jsp</result>
那个你的{1}是add 他会执行add方法 但是你的返回是 add result里面没有add 所有会报404 你把name=“a”修改成add 就好了。。或者return “a”
夏侯瑾軒
action.java里面的add()和update()方法的返回值 即return要写上相对应的方法名,我的问题和你的一样,
add()方法的return值是add,update()的方法的return值是update,实测就是这样!视屏没写没办法@!!!!!
慕雪1014944
自问自答,最后找到了问题,使用的是2.5版本,XML文件配置还是写的2.3dtd,把两个2.3改成2.5就可以了
GPride
应该可以吧,下面的那个第一个参数指定类名,第二个参数指定方法名称
er路

return jsp文件名
慕哥3287816
自己写会更好点的,能发现很多错,代码不多的!
qq_梦一场_10
据说是struts2.5为了提升安全性,添加的。。。。
慕九州8886378
金桂
1、打开代码提示功能。有时候可能会出现没有代码提示的功能,这个时候我们可以在window->Preferences->Java->Editor->Content Assist->Advanced 上面的选项卡Select the proposal kinds contained in the 'default' content assist list: 中所需要提示的内容勾选上就可以了。
2、设置代码提示的快捷键。在需要代码提示的时候,可以通过快捷键实现提示功能,在这里可以根据个人的习惯设置这个键。我们可以在windows->preference->workbench->keys 下设置Content Assist的快捷键,可以先选中Content assist,然后在下面的Binding里设置新的快捷键,在when里选择生效的范围。
3、struts2的scr导入了没有
weibo_小宝宝囍_0
看4-8节,通配符和传参数没关系
丶子非鱼
你action的add,update方法返回的都是success,当然就匹配你的success结果集了(也就是result中没有写name的那个),然后就跳到HelloWorld.jsp了啊
Leung007
你的类名是HelloWorldAction,所以应改为<action name="helloworldaction_*">!否则你action中的名字怎么跟类关联呢???
帅意
这个问题我也遇到了,clean重新部署都没作用,后来重启eclipse解决
qq_钓宝_0
双引号...
把心刘
return “add” 试一试
妞给爷乐一个
其实{1}{2}{3}中括号里面的数字就是表示出现在地址栏的所代替通配符*的字符出现的位置
比如:你在地址栏输入http://localhost:8080/HelloWorld/hello_login_add.html
那么{1}表示hello {2}表示login {3}表示add
etcxy
你的HelloWorldAction的add方法怎么写的?return SUCCESS?
<result>标签不写name属性 默认值 据说是success
如果你的add方法返回的是SUCCESS,那就对了
SheldonParsons
不太理解的问题啊,重载是java的特性,也就是说只要符合参数不同,而方法名相同就会自动重载了啊
兮蓅
因为用!是指定用struts.enable.DynamicMethodInvocation来调用动态方法的,但是通用符就不必用struts.enable.DynamicMethodInvocation来调用动态方法,干脆不用写这个常量。2.5版本就需要用strict-method-invocation="false"来方法调用
NullMoneyException
所谓访问servlet-api是指的是: 你在action中本身是不能直接去调用session,application这些对象的,如果你要写一个action实现登录,然后在页面显示用户名,你是不是就得用一个对象去保存这个用户名然后在页面中去调用这个对象?一般会想到就是保存在session中或者cookies中,但是action中本身是不存在这些serlvet对象的,所以你需要让你的action去实现对象的**aware接口,然后在action中调用session这些对象,这个过程就叫继承了servlet-api。(个人理解)
慕尼黑0787734
找到错误的原因了
慕粉1469271420
哦哦,知道了