java web struts2后台到页面的传值与取值问题
首先我在Action类中已经从数据库中取到了一个实体类stu=studentDao.queryInfoByName(stu.username);,就是获得了一个学生的详细...
首先我在Action类中已经从数据库中取到了一个实体类
stu=studentDao.queryInfoByName(stu.username);,就是获得了一个学生的详细信息,其中stu是Action类的成员变量且有get和set方法。
页面是这样的,删除了一些标签的属性,但重要的都在这,另外我这个是没有成功的。运行后页面中textfiled里显示的是#{id} 也就是根本没取到值,想问下我该怎样写才能让textfiled里面的初始值就是查出来的stu的属性。
<s2:form action="student_modify" method="post">
<table >
<tr><td ><table >
<s2:iterator value="stu" >
<tr>
<td ><span class="STYLE4">编号</span></td>
<td ><s2:textfield name="user.id" id="id" value="#{id}"></s2:textfield></td>
</tr>
<tr>
<td><span class="STYLE4">姓名</span></td>
<td><s2:textfield name="user.username" id="name" value="#{username}" /></td>
</tr>
<tr>
<td>
<s2:submit value="保存" align="center"/>
</td>
</tr>
</s2:iterator>
</table></td></tr>
</table>
</s2:form>
另外一点是 虽然textfiled初始值不对,但我把值改了之后,点击保存,是可以将修改的值修改到数据库的。
求大神啊!!!! 展开
stu=studentDao.queryInfoByName(stu.username);,就是获得了一个学生的详细信息,其中stu是Action类的成员变量且有get和set方法。
页面是这样的,删除了一些标签的属性,但重要的都在这,另外我这个是没有成功的。运行后页面中textfiled里显示的是#{id} 也就是根本没取到值,想问下我该怎样写才能让textfiled里面的初始值就是查出来的stu的属性。
<s2:form action="student_modify" method="post">
<table >
<tr><td ><table >
<s2:iterator value="stu" >
<tr>
<td ><span class="STYLE4">编号</span></td>
<td ><s2:textfield name="user.id" id="id" value="#{id}"></s2:textfield></td>
</tr>
<tr>
<td><span class="STYLE4">姓名</span></td>
<td><s2:textfield name="user.username" id="name" value="#{username}" /></td>
</tr>
<tr>
<td>
<s2:submit value="保存" align="center"/>
</td>
</tr>
</s2:iterator>
</table></td></tr>
</table>
</s2:form>
另外一点是 虽然textfiled初始值不对,但我把值改了之后,点击保存,是可以将修改的值修改到数据库的。
求大神啊!!!! 展开
4个回答
展开全部
<s2:iterator value="stu">
<tr>
<td><span class="STYLE4">编号</span></td>
<td><s2:textfield name="user.id" id="id" value="%{id}"></s2:textfield></td>
</tr>
<tr>
<td><span class="STYLE4">姓名</span></td>
<td><s2:textfield name="user.username" id="name"
value="%{username}" /></td>
</tr>
<tr>
<td><s2:submit value="保存" align="center" /></td>
</tr>
</s2:iterator>
你用到了struts2.1的s:iterator,如果是显示所有学生,需要用s:iterator,这个属性中有一个value里面写list集合还有一个ID(或者val),给这个集合起别名,然后你应该是循环这个list,把list所有学生取出来显示出来。更不应该所有你的编号字段和姓名字段有问题。 再说你这是修改学生。应该是取一个学生出来。通用取值都是${user.name},哪里用得到s:iterator,所以你出现的问题很大。
追问
你说的那个问题我也明白,因为是新手,实在不知道怎么把从数据库中取到的值传到页面,所以用这iterator,so,你能不能给个解决办法
谢谢了……
追答
//修改其中一个学生,在后台通过学生编号查询出学生跳转到这个页面然后通过传到这个页面的//参数取值
<form action="****.action" method="post">
<table>
<tr>
<td><span class="STYLE4">编号</span></td>
<td><input readonly type="text" name=user.id value=${user.id}/> </td>
</tr>
<tr>
<td><span class="STYLE4">姓名</span></td>
<td><input type="text" name="user.name" value=${user.name}</td>
</tr>
<tr>
<td><s2:submit value="保存" align="center" /></td>
</tr>
</table>
<form>
我在编号的文本文档中定义了readonly制度。因为编号是表中的ID,唯一,不可修改,点击保存把修改的名字通过form提交到action后台中进行处理。 大概就是就是这样。 望采纳。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s2" uri="/struts-tags"%>
<html>
<head></head>
<body>
<s2:form action="student_modify" method="post">
<table>
<tr>
<td><table>
<s2:iterator value="stu">
<tr>
<td><span class="STYLE4">编号</span></td>
<td><s2:textfield name="user.id" id="id" value="%{id}"></s2:textfield></td>
</tr>
<tr>
<td><span class="STYLE4">姓名</span></td>
<td><s2:textfield name="user.username" id="name"
value="%{username}" /></td>
</tr>
<tr>
<td><s2:submit value="保存" align="center" /></td>
</tr>
</s2:iterator>
</table></td>
</tr>
</table>
</s2:form>
</body>
</html>
我发现你是语法错误
%{id}
而不是
#{id}
我想你也应该注意到用户名也是没有信息的吧
附件是我测试用的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<s2:textfield name="user.id" id="id" value="#{id}"></s2:textfield> 一般 能不用struts封装的标签就不要用
#{id} 确定有这种方式,这也不是ognl表达式呀!
所以简单最好:<input value="${user.id}"/> 这种才是最常用的方式。
#{id} 确定有这种方式,这也不是ognl表达式呀!
所以简单最好:<input value="${user.id}"/> 这种才是最常用的方式。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没必要循环吧。直接:
value="${stu.username}"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询