struts2 添加和修改如何在一个jsp页面实现。

小脩 2013-01-17 10:18:06
action里面调用attachDirty这个方法, 当有ID的时候是update,没有的时候就是save。

我现在AddOrUpdate.jsp页面只做了添加。

请问一下,如何把修改也在AddOrUpdate.jsp页面完成?
...全文
596 23 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumingmao1990 2013-01-17
  • 打赏
  • 举报
回复
<s:form action="%{id>0?'notice!update':'notice!add'}" enctype="multipart/form-data" namespace="/" method="post"name="form1" id="form1"> <s:hidden name="id"></s:hidden> <input type="submit" id="sub" <s:property value="id>0?'':'disabled'"/> value="<s:property value="id>0?'修改':'新增'"/>"/> <input type="reset" value="重置">
  • 打赏
  • 举报
回复

<c:choose>
<c:when test="ID">XXX</c:when>
<c:otherwise>YYY</c:otherwise>
</c:choose>
用标签吧,有就执行XXX。没有就YYY
小脩 2013-01-17
  • 打赏
  • 举报
回复
上面是AddOrUpdate.jsp页面代码。
小脩 2013-01-17
  • 打赏
  • 举报
回复

<s:form name="form1" action="dep" method="post">
			<table class="objTable">
				<s:iterator var="dep" value="#session.depList">
					<tr>
						<td class="title" style="width: 20%">
							部门名称
						</td>
						<td style="width: 80%">
							<s:textfield label="部门名称:" name="departName"
								cssClass="EditCon"></s:textfield>
						</td>
					</tr>
					<tr>
						<td class="title">
							部门负责人
						</td>
						<td>
							<s:textfield label="部门负责人:" name="departPerson"
								cssClass="EditCon"></s:textfield>
						</td>
					</tr>
					<tr>
						<td class="title">
							部门职责
						</td>
						<td>
							<s:textfield label="部门职责:" name="departRes"
								cssClass="EditCon"></s:textfield>
						</td>
					</tr>
					<tr>
						<td class="title">
							备注
						</td>
						<td>
							<s:textfield label="备注:" name="departRemarks"
								cssClass="EditCon"></s:textfield>
							<s:hidden name="departId"></s:hidden>
						</td>
					</tr>
				</s:iterator>
			</table>
		   <div class="edit_bottom"><s:submit value="提交"></s:submit><input onclick="tipCancel()" value="取消"  type="button"></div>
zhang527 2013-01-17
  • 打赏
  • 举报
回复
后台判断啊,点击添加的时候对其清空
o0lcl0o 2013-01-17
  • 打赏
  • 举报
回复
我意思是在添加按钮上加个事件,点击的时候先将隐藏域里的ID值清空然后再提交数据
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 5 楼 o0lcl0o 的回复:
用JS在点击添加时将ID清空,你不是依据ID来区分是添加还是编辑的操作嘛
根据ID判断是在action里执行attachDirty方法时候。 但是页面上区分不了。
o0lcl0o 2013-01-17
  • 打赏
  • 举报
回复
用JS在点击添加时将ID清空,你不是依据ID来区分是添加还是编辑的操作嘛
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 3 楼 o0lcl0o 的回复:
往这个页面传一个ID,如果ID存在且能拿到对象就把内容显示在页面,同时将ID放到隐藏域;如果ID不存在页面上内容全部留空,传一个空ID
<s:hidden name="departId"></s:hidden> 我用了。 修改的显示数据是<s:iterator var="dep" value="#session.depList">获取action的会话来显示的。 能修改后, 点添加也变成了修改。 如果depList这个session没有值 <s:textfield label="部门名称:" name="departName" ></s:textfield>这个控件就显示不出了。
o0lcl0o 2013-01-17
  • 打赏
  • 举报
回复
往这个页面传一个ID,如果ID存在且能拿到对象就把内容显示在页面,同时将ID放到隐藏域;如果ID不存在页面上内容全部留空,传一个空ID
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 1 楼 zhang527 的回复:
0,1,2 之类的,判断当是0的时候保存,1,添加,2,修改
关键的是在哪判断, 如何判断。 还有就是我通过<s:textfield这个标签做输入和修改显示数据。 可以修改了。 但是点添加之后还是修改。
zhang527 2013-01-17
  • 打赏
  • 举报
回复
0,1,2 之类的,判断当是0的时候保存,1,添加,2,修改
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 22 楼 lyh_974056553 的回复:
你的jsp代码逻辑就是这样的呀,depList如果有数据则迭代,如果没数据就不会迭代了,<s:textfield 是不会显示出来的。。。 你应该在对depList迭代之前加上一个判断,有数据就迭代显示,没数据就做另外一个你说的新增的处理……
是的。 现在我明白了!
小毛球 2013-01-17
  • 打赏
  • 举报
回复
你的jsp代码逻辑就是这样的呀,depList如果有数据则迭代,如果没数据就不会迭代了,<s:textfield 是不会显示出来的。。。 你应该在对depList迭代之前加上一个判断,有数据就迭代显示,没数据就做另外一个你说的新增的处理……
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 18 楼 fangmingshijie 的回复:
那就在后台这样做request.setAttribute("departId",departId); 页面上 Java code ? 1234 <c:choose> <c:when test="${!empty departId}">update</c:when> <c:otherwise>save</c:otherwise> </c:choose>
谢谢了。 你的方法可行! 但就是when要写一遍 otherwise又要写一遍。
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 19 楼 lyh_974056553 的回复:
LZ你是不是想: 当departId有值的时候,是对信息进行修改处理。 当departId为空的时候,是对信息进行新增处理。 那你直接在提交action的时候把departId作为参数传递到attachDirty()方法里进行是否为空判断,然后再对信息进行修改或新增处理不就行了吗? 不知道这个是不是你想要的答案。。。
你说的我已经完成了, 我现在的问题是jsp页面的问题。 在jsp页面上add和update没法分开正常显示。 当我 <s:iterator var="dep" value="#session.depList">的deplist有值修改可以,但是点添加按钮也是修改。 deplist没有值的时候 就连<s:textfield 都显示不出。
小毛球 2013-01-17
  • 打赏
  • 举报
回复
LZ你是不是想: 当departId有值的时候,是对信息进行修改处理。 当departId为空的时候,是对信息进行新增处理。 那你直接在提交action的时候把departId作为参数传递到attachDirty()方法里进行是否为空判断,然后再对信息进行修改或新增处理不就行了吗? 不知道这个是不是你想要的答案。。。
  • 打赏
  • 举报
回复
那就在后台这样做request.setAttribute("departId",departId); 页面上
<c:choose>
<c:when test="${!empty departId}">update</c:when>
<c:otherwise>save</c:otherwise>
</c:choose>
小脩 2013-01-17
  • 打赏
  • 举报
回复
引用 16 楼 fangmingshijie 的回复:
你怎么判断有无ID的?
<s:hidden name="departId"></s:hidden>这个标签提交到action里面的时候判断的。 页面上没法判断。
  • 打赏
  • 举报
回复
你怎么判断有无ID的?
加载更多回复(2)

81,122

社区成员

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

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