嗨,我愿意更新从JSP上加载的数据库中获取的复选框的值.我正在创建员工档案.Jsp有字段员工姓名,员工地址,员工技术技能.员工技能具有以下复选框以选择以下值
Checkbox1:Java Checkbox2:Dot net
对于Employee X,数据库中没有Java和Dot net的计算技能.我能够从数据库中获取记录到JSP.
在动作类中,我从数据库中获取值并将它们设置为具有两个getter和setter的EmployeeForm.我也使用setattribute在请求中设置这些值.
在EmployeeUpdate.jsp中,我正在执行以下操作
String skillsValue1=(String)request.getAttribute("C/C++");
String skillsValue2=(String)request.getAttribute("Java");
<%if(skillsValue1!=null){ %>
<html:checkbox property="ComputationalSkill1" value="C/C++"/>
<%}else{ %>
<html:checkbox property="ComputationalSkill1" value=" "/>
<%}%>
</td>
<%if(skillsValue2!=null){ %>
<html:checkbox property="ComputationalSkill2" value="Java"/>
<%}else{ %>
<html:checkbox property="ComputationalSkill2" value=" "/>
<%}%>
</td>
Run Code Online (Sandbox Code Playgroud)
以下代码完美地显示了具有上述任何技能且没有技能的员工的复选框.
我在这里遇到以下问题
任何人都可以让我知道如何获取复选框的更改值,我,当我将状态从取消选中更改为检查状态时,应该在属性中设置值.
如果员工具有Java技能,则显示以下复选框:
<html:checkbox property="ComputationalSkill2" value="Java"/>
Run Code Online (Sandbox Code Playgroud)
这意味着在提交时,如果选中该复选框,将发送以下参数:
ComputationalSkill2=Java
Run Code Online (Sandbox Code Playgroud)
如果员工没有Java技能,您将显示以下复选框:
<html:checkbox property="ComputationalSkill2" value=" "/>
Run Code Online (Sandbox Code Playgroud)
这意味着在提交时,如果选中该复选框,将发送以下参数:
ComputationalSkill2=<blank space>
Run Code Online (Sandbox Code Playgroud)
您想要的是始终生成相同的复选框(第一个),但如果员工具有Java技能,则预先选择它,如果员工没有Java技能,则不预先选择它.
这不可能像使用<html:checkbox>标记一样,因为它应该绑定到布尔属性.因此,您可以在表单bean中使用属性isJavaSkilled()/ setJavaSkilled(),并使用
<html:checkbox property="javaSkilled"/>
Run Code Online (Sandbox Code Playgroud)
如果表单的javaSkilled属性为true,Struts将预先选中该复选框,如果它为false,则不选中它.
但请注意,由于您拥有可以存在或不存在的技能列表,因此您应该具有属性getSkills()/ setSkills()类型String[],并使用<html:multibox>标记.
| 归档时间: |
|
| 查看次数: |
11824 次 |
| 最近记录: |