4
回答
关于jsp页面传值和取值的一些疑惑。
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在学习struts时,一直没弄懂在jsp页面通过action传值和取值显示这些问题。当时记过有好几种不同的写法,不过现在都忘了,只剩下一种比较不合理的。如下:

<s:form action="add.action" method="post">
		<s:textfield name="adminNo" label="用户名"></s:textfield>
		<s:textfield name="name" label="用户名"></s:textfield>
		<s:password name="password" label="密码"></s:password>
		<s:submit value="提交"></s:submit>
		
	</s:form>



这种是我在action中定义了三个字段,就是name,对应就可以获取到了,但这种方法之前有个同学跟我说不合理,我就不采用了。

然后我记得还有两种,一种是:

<s:textfield name="#Admin.adminNo" label="用户名"></s:textfield>

貌似是这种,Admin是类名,adminNo是类下的一个字段。

第二种是:

<s:textfield name="Admin.adminNo" label="用户名"></s:textfield>
没有了“#”号

不知道有没记错,我在网上找的时候可能方法有点不对,找不到准确解决的帖子或者博客。。

好了,我的问题就是,这个name属性里到底要怎么写,action又要怎么的去对应呢?

举报
wkit
发帖于2年前 4回/548阅
共有4个答案 最后回答: 2年前
记得写 # 的时候是取值
<s:textfield name="admin.adminNo" label="用户名"></s:textfield>

这么写是对的,后台定义 Admin的实体类,然后在action中

private Admin admin;
//get set



提交后就会自动封装到里面。还有一种是实现 ModelDriven<T>



--- 共有 1 条评论 ---
wkit我一开始测试的时候是这样写的,但发现怎么都传不了值到action。。 2年前 回复
我觉得你可以看下源码~~   struts标签应该也是jsp自定义标签的一种,手上没有struts的项目就没办法帮助你咯
--- 共有 1 条评论 ---
wkit看过几个,就都是类似admin.name这样传,然后#admin.name这样取。。 2年前 回复

<s:textfield name="Admin.adminNo" label="用户名"></s:textfield>这种可以的,action中写一个get set得到Admin实体,private Admin admin ;

后台用admin.adminNo就可以得到值,至于请求没有进入action,就检查action名称和struts.xml配置是否正确,可以看下ModelDriven<T>这个接口更好用。


顶部