如何在 Struts 2 和 JSP 的 Action 类中仅取选定复选框的值 [英] How to take values of only selected checkbox in Action class in Struts 2 and JSP

查看:30
本文介绍了如何在 Struts 2 和 JSP 的 Action 类中仅取选定复选框的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我显示了 24 个复选框.我想获取操作类中选中复选框的所有值,并将其作为新记录插入数据库中.一旦我成功获取按钮单击时选中复选框的值,就会完成插入.

我参考了这个链接我遵循了史蒂文先生回答的答案,但在此帮助下,我只能显示布尔值,但在这里我希望选中复选框的文本值.

下面是我的 JSP 页面.

<%@ page language="java";内容类型=文本/html;字符集=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@taglib uri="/struts-tags";前缀=s"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"http://www.w3.org/TR/html4/loose.dtd"><头><身体><s:form action="eventInsertAction"><!-- 主要内容--><节类=内容"><!-- 小盒子(Stat box)--><div class="row"><div class="contetpanel"><div><div class="crevtbl"><div class="crevtblRow"><div class="crevtblCell">事件名称</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.eventName"类=表单文本字段"type=text"><s:fielderror fieldName=event.eventName"/></div>

<div class="crevtblRow"><div class="crevtblCell">公司名称</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.companyName";类=表单文本字段"类型=文本"><s:fielderror fieldName="event.companyName"/></div>

<div class="crevtblRow"><div class="crevtblCell">联系人姓名</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.contactPerson";类=表单文本字段"类型=文本"><s:fielderror fieldName="event.contactPerson"/></div>

<div class="crevtblRow"><div class="crevtblCell">联系人</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.contactNumber"类=表单文本字段"类型=文本"><s:fielderror fieldName="event.contactNumber"/></div>

<div class="crevtblRow"><div class="crevtblCell">电子邮件</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.emailId"类=表单文本字段"类型=文本"><s:fielderror fieldName="event.emailId"/></div>

<div class="crevtblRow"><div class="crevtblCell">活动场地</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.eventVenue"类=表单文本字段"类型=文本"><s:fielderror fieldName="event.eventVenue"/></div>

<div class="crevtblRow"><div class="crevtblCell">事件日期</div><div class="crevtblCell1">:</div><div class="crevtblCell2">From: <input name="event.fromDate";类=formtextfield1";类型=文本"占位符=YYYY/MM/DD">&nbsp;&nbsp;&nbsp;&nbsp;到:<输入名称=event.toDate"类=formtextfield1";类型=文本"占位符=YYYY/MM/DD"></div>

<div class="crevtblRow"><div class="crevtblCell">事件时间</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><input name="event.eventTime"类=formtextfield1";类型=文本"占位符=HH:MM AM/PM";><s:fielderror fieldName="event.eventTime"/></div>

<div class="crevtblRow"><div class="crevtblCell">需要许可证</div><div class="crevtblCell1">:</div><div class="crevtblCell2"><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Rangabhoomi</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Fire NOC</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Fire Engine</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Premises &amp;NOC</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Performance</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">PWD<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">Local Police
<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Collector</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">PPL<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">IPRS</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">Traffic<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Liquor License</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">售票许可证</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">BMC停车<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">Parking
<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">Port Trust<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Novex</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">外国艺术家</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">DCP Office</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Fire Marshal</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value="">销售税 NOC<输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Other</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Extra</span><输入名称=event.licenserequired"类型=复选框"类=表单复选框";value=""><span class="formcheckbox_content">Commission</span>

<div class="crevtblRow"><div class="crevtblCell"></div><div class="crevtblCell1"></div><div class="crevtblCell2"><button type="submit"class=btn btn-primary">创建事件</button></div>

</节></s:form></html>

下面是我的 setter 和 getter 类

package com.ca.pojo;公共类事件{公共事件(){//TODO 自动生成的构造函数存根}私人字符串事件名称;私人字符串公司名称;私人字符串联系人;私人字符串contactNumber;私人字符串 emailId;私人字符串 eventVenue;私人字符串 fromDate;私人字符串 toDate;私人字符串事件时间;需要私人字符串许可;公共字符串 getEventName() {返回事件名称;}public void setEventName(String eventName) {this.eventName = eventName;}公共字符串 getCompanyName() {返回公司名称;}public void setCompanyName(String companyName) {this.companyName = 公司名称;}公共字符串 getContactPerson() {返回联系人;}公共无效setContactPerson(字符串contactPerson){this.contactPerson = 联系人;}公共字符串 getContactNumber() {返回联系人号码;}public void setContactNumber(String contactNumber) {this.contactNumber = contactNumber;}公共字符串 getEmailId() {返回电子邮件 ID;}public void setEmailId(String emailId) {this.emailId = emailId;}公共字符串 getEventVenue() {返回事件地点;}public void setEventVenue(String eventVenue) {this.eventVenue = eventVenue;}公共字符串 getFromDate() {从日期返回;}public void setFromDate(String fromDate) {this.fromDate = fromDate;}公共字符串 getToDate() {返回日期;}public void setToDate(String toDate) {this.toDate = toDate;}公共字符串 getEventTime() {返回事件时间;}public void setEventTime(String eventTime) {this.eventTime = eventTime;}公共字符串 getLicenserequired() {需要返回许可证;}public void setLicenserequired(String licenserequired) {this.licenserequired = licenserequired;}}

下面是我的 Action 类

package com.ca.actions;导入 java.sql.Connection;导入 java.sql.DriverManager;导入 java.sql.PreparedStatement;导入 java.util.ArrayList;导入 java.util.List;导入 java.util.regex.Matcher;导入 java.util.regex.Pattern;导入 com.ca.database.Database;导入 com.ca.pojo.Event;导入 com.opensymphony.xwork2.ActionSupport;公共类 EventInsertAction 扩展 ActionSupport {私人字符串事件ID;事件事件;字符串名称;公共事件插入操作(){//TODO 自动生成的构造函数存根}公共字符串 getName() {返回名称;}公共无效集名称(字符串名称){this.name = 名称;}公共字符串 getEventId() {返回事件ID;}public void setEventId(String eventId) {this.eventId = eventId;}公共事件 getEvent() {返回事件;}公共无效setEvent(事件事件){this.event = 事件;}@覆盖公共字符串执行()抛出异常{System.out.println(事件"+event.getLicenserequired());//TODO 自动生成的方法存根System.out.println(Hi Mahi"+name);列表<整数>ints = new ArrayList();int i = 0;for (int i1 = 0; i1 <10000; i1++) {ints.add(i1);}//Collections.shuffle(ints);String Id = String.valueOf(ints.get(i++));eventId = event.getEventName() + Id;System.out.println(eventId);尝试 {数据库数据库 = new Database();连接 con = database.Get_Connection();System.out.println(驱动加载");PreparedStatement st = con.prepareStatement("插入事件(EVENT_ID,EVENT_NAME,COMPANY_NAME,CONTACT_PERSON,CONTACT_NO,EMAIL_ID,EVENT_VENUE,FROM_DATE,TO_DATE,EVENT_TIME)";+ "值(?,?,?,?,?,?,?,?,?,?)");st.setString(1, eventId);st.setString(2, event.getEventName());st.setString(3, event.getCompanyName());st.setString(4, event.getContactPerson());st.setString(5, event.getContactNumber());st.setString(6, event.getEmailId());st.setString(7, event.getEventVenue());st.setString(8, event.getFromDate());st.setString(9, event.getToDate());st.setString(10, event.getEventTime());st.executeUpdate();System.out.println(成功");关闭();} 捕获(异常 e){System.out.println(e);}返回成功";}@覆盖公共无效验证(){//TODO 自动生成的方法存根超级验证();if (event.getEventName().isEmpty()) {System.out.println("事件名称");addFieldError("event.eventName", "请输入事件名称..");}if (event.getCompanyName().isEmpty()) {addFieldError("event.companyName", "请输入公司名称..");}if (event.getContactNumber().isEmpty()) {addFieldError("event.contactNumber",请输入联系电话..");} 别的 {字符串表达式 = "^\\+?[0-9\\-]+\\*?$";CharSequence inputStr = event.getContactNumber();模式模式 = Pattern.compile(表达式,Pattern.CASE_INSENSITIVE);匹配器 matcher = pattern.matcher(inputStr);如果 (!matcher.matches())addFieldError("event.contactNumber", "Invalid Contact Number..");}如果 (event.getContactPerson().isEmpty()) {addFieldError("event.contactPerson","请输入联系人姓名..");}如果 (event.getEmailId().isEmpty()) {addFieldError("event.emailId", "请输入电子邮件 ID..");} 别的 {字符串表达式 = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[AZ]{2,4}$";CharSequence inputStr = event.getEmailId();模式模式 = Pattern.compile(表达式,Pattern.CASE_INSENSITIVE);匹配器 matcher = pattern.matcher(inputStr);如果 (!matcher.matches())addFieldError("event.emailId", "Invalid Email Address..");}如果 (event.getEventVenue().isEmpty()) {addFieldError("event.eventVenue", "请输入活动地点..");}if (event.getFromDate().isEmpty()) {addFieldError("event.fromDate", "请输入日期..");}如果 (event.getToDate().isEmpty()) {addFieldError("event.toDate", "请输入截止日期..");}如果 (event.getEventTime().isEmpty()) {addFieldError("event.eventTime", "请输入事件时间..");}}}

解决方案

value 属性不应为空 value="".如果您遵循链接的答案,您就会看到使用了 s:checkbox 标签.当这个标签被渲染时,它提供了选中和未选中复选框的字段值.并评论 Dave Newton 在他的书中的注意事项它应该有值 truefalse 是目前唯一可行的值.这些值仅适用于 checkbox 拦截器."

<块引用>

该标签呈现单个复选框.在撰写本文时,它仅与布尔值(或布尔值)属性.试图预选一个复选框例如,字符串值仅在字符串为真的或者错误的.

<小时>

有一个示例 Struts 2 复选框示例,使用这样的 fieldValue 属性.

如果您想深入了解 checkbox 拦截器的工作原理,您可以阅读 <s:checkbox> 不会以 struts2 形式自动填充.

另一个使用多个复选框的例子 Struts2 多个复选框示例.与 s:checkbox 不同,它不适用于任何未选中的值,您可以使用 listKeylistValue 属性直接映射值.

I am displaying 24 checkboxes. I want to get all the values of checked checkboxes in action class and insert it as a new record inside database.Inserting will be done once I succeed in getting the values of checked checkboxes on button click.

I referred this link in which I followed the answer answered by steven sir but with help of that I can display only boolean values but here I want text values of checkboxes selected.

So below is my JSP page.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
    <%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
<s:form action="eventInsertAction">
        <!-- Main content -->
        <section class="content">
          <!-- Small boxes (Stat box) -->
          
          
          <div class="row">
            <div class="contetpanel">
                <div>
                    <div class="crevtbl"> 
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Event Name</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.eventName" class="formtextfield" type="text"><s:fielderror fieldName="event.eventName"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Company Name</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.companyName" class="formtextfield" type="text" ><s:fielderror fieldName="event.companyName"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Contact Person Name</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.contactPerson" class="formtextfield" type="text" ><s:fielderror fieldName="event.contactPerson"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Contact</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.contactNumber" class="formtextfield" type="text" ><s:fielderror fieldName="event.contactNumber"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Email</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.emailId" class="formtextfield" type="text" ><s:fielderror fieldName="event.emailId"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Event Venue</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.eventVenue" class="formtextfield" type="text" ><s:fielderror fieldName="event.eventVenue"/></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Event Date</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2">From : <input name="event.fromDate" class="formtextfield1" type="text" placeholder="YYYY/MM/DD"> &nbsp; &nbsp; &nbsp; &nbsp; To : <input name="event.toDate" class="formtextfield1" type="text" placeholder="YYYY/MM/DD"></div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell">Event Time</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2"><input name="event.eventTime" class="formtextfield1" type="text" placeholder="HH:MM  AM/PM" ><s:fielderror fieldName="event.eventTime"/></div> 
                        </div>
                        <div class="crevtblRow">
                            <div class="crevtblCell">License Required</div> 
                            <div class="crevtblCell1">:</div> 
                            <div class="crevtblCell2">
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Rangabhoomi</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Fire NOC</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Fire Engine</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Premises &amp; NOC</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Performance</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">PWD</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Local Police</span><br />
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Collector</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">PPL</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">IPRS</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Traffic</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Liquor License</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Ticket Selling License</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">BMC Parking</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Parking</span><br />
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Port Trust</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Novex</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Foreign Artist</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">DCP Office</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Fire Marshal</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Sale Tax NOC</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Other</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Extra</span>
                            <input name="event.licenserequired" type="checkbox" class="formcheckbox" value=""><span class="formcheckbox_content">Commission</span>
                                
                            </div> 
                        </div>
                        <div class="crevtblRow"> 
                            <div class="crevtblCell"></div> 
                            <div class="crevtblCell1"></div> 
                            <div class="crevtblCell2"><button type="submit" class="btn btn-primary">Create Event</button></div> 
                        </div>
                    </div>
                </div>
            </div>
          </div>
            

            </section>
            </s:form>
</body>
</html>  

Below is my setters and getters class

package com.ca.pojo;

public class Event {
    public Event() {
        // TODO Auto-generated constructor stub
    }

    private String eventName;
    private String companyName;
    private String contactPerson;
    private String contactNumber;
    private String emailId;
    private String eventVenue;
    private String fromDate;
    private String toDate;
    private String eventTime;
    private String licenserequired;
    
    public String getEventName() {
        return eventName;
    }

    public void setEventName(String eventName) {
        this.eventName = eventName;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public String getEmailId() {
        return emailId;
    }

    public void setEmailId(String emailId) {
        this.emailId = emailId;
    }

    public String getEventVenue() {
        return eventVenue;
    }

    public void setEventVenue(String eventVenue) {
        this.eventVenue = eventVenue;
    }

    public String getFromDate() {
        return fromDate;
    }

    public void setFromDate(String fromDate) {
        this.fromDate = fromDate;
    }

    public String getToDate() {
        return toDate;
    }

    public void setToDate(String toDate) {
        this.toDate = toDate;
    }

    public String getEventTime() {
        return eventTime;
    }

    public void setEventTime(String eventTime) {
        this.eventTime = eventTime;
    }

    public String getLicenserequired() {
        return licenserequired;
    }

    public void setLicenserequired(String licenserequired) {
        this.licenserequired = licenserequired;
    }
    
}  

Below is my Action class

package com.ca.actions;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.ca.database.Database;
import com.ca.pojo.Event;
import com.opensymphony.xwork2.ActionSupport;

public class EventInsertAction extends ActionSupport {

    private String eventId;
    Event event;
    String name;

    public EventInsertAction() {
        // TODO Auto-generated constructor stub
    }

    
    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public String getEventId() {
        return eventId;
    }

    public void setEventId(String eventId) {
        this.eventId = eventId;
    }

    public Event getEvent() {
        return event;
    }

    public void setEvent(Event event) {
        this.event = event;
    }

    @Override
    public String execute() throws Exception {
        
        System.out.println("Event"+event.getLicenserequired());

        // TODO Auto-generated method stub
        System.out.println("Hi Mahi"+name);

        List<Integer> ints = new ArrayList<Integer>();
        int i = 0;

        for (int i1 = 0; i1 < 10000; i1++) {
            ints.add(i1);
        }
        // Collections.shuffle(ints);

        String Id = String.valueOf(ints.get(i++));

        eventId = event.getEventName() + Id;
    
        System.out.println(eventId);
        try {
            Database database = new Database();
            Connection con = database.Get_Connection();
            System.out.println("Driver Loaded");
            PreparedStatement st = con
                    .prepareStatement("insert into event(EVENT_ID,EVENT_NAME,COMPANY_NAME,CONTACT_PERSON,CONTACT_NO,EMAIL_ID,EVENT_VENUE,FROM_DATE,TO_DATE,EVENT_TIME)"
                            + "values(?,?,?,?,?,?,?,?,?,?)");
            st.setString(1, eventId);
            st.setString(2, event.getEventName());
            st.setString(3, event.getCompanyName());
            st.setString(4, event.getContactPerson());
            st.setString(5, event.getContactNumber());
            st.setString(6, event.getEmailId());
            st.setString(7, event.getEventVenue());
            st.setString(8, event.getFromDate());
            st.setString(9, event.getToDate());
            st.setString(10, event.getEventTime());
            st.executeUpdate();
            System.out.println("success");
            con.close();
        } catch (Exception e) {
            System.out.println(e);
        }

        return "success";
    }

    @Override
    public void validate() {
        // TODO Auto-generated method stub
        super.validate();
        if (event.getEventName().isEmpty()) {
            System.out.println("Event Name");
            addFieldError("event.eventName", "Please Enter Event Name ..");
        }
        
        if (event.getCompanyName().isEmpty()) {
            addFieldError("event.companyName", "Please Enter Company Name.. ");
        }
        
        if (event.getContactNumber().isEmpty()) {
            addFieldError("event.contactNumber",
                    "Please Enter Contact Number..");
        } else {
            String expression = "^\\+?[0-9\\-]+\\*?$";
            CharSequence inputStr = event.getContactNumber();
            Pattern pattern = Pattern.compile(expression,
                    Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(inputStr);
            if (!matcher.matches())
                addFieldError("event.contactNumber", "Invalid Contact Number..");

        }
        
        if (event.getContactPerson().isEmpty()) {
            addFieldError("event.contactPerson",
                    "Please Enter Contact Person Name..");
        }
        
        if (event.getEmailId().isEmpty()) {
            addFieldError("event.emailId", "Please Enter Email ID..");
        } else {
            String expression = "^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]{2,4}$";
            CharSequence inputStr = event.getEmailId();
            Pattern pattern = Pattern.compile(expression,
                    Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(inputStr);
            if (!matcher.matches())
                addFieldError("event.emailId", "Invalid Email Address..");
        }
        
        if (event.getEventVenue().isEmpty()) {
            addFieldError("event.eventVenue", "Please Enter Event Venue..");
        }
        
        if (event.getFromDate().isEmpty()) {
            addFieldError("event.fromDate", "Please Enter Date..");
        }
        
        if (event.getToDate().isEmpty()) {
            addFieldError("event.toDate", "Please Enter To Date..");
        }
        
        if (event.getEventTime().isEmpty()) {
            addFieldError("event.eventTime", "Please Enter Event Time..");
        }

    }

}  

解决方案

The value attribute should not be empty value="". If you followed the linked answer you have seen that s:checkbox tag is used. When this tag is rendered it provided the field value for both checked and unchecked checkbox. And remarking Dave Newton's notice in his book "It should have values true or false the only viable values for the moment. These are only values that work correctly with checkbox interceptor."

The tag renders a single checkbox . At the time of this writing it only works well with Boolean (or boolean) properties. Attempting to preselect a checkbox with, for example, a string value only works if the string is true or false .


There's an example Struts 2 checkbox example, which is using such fieldValue attribute.

If you want a deep incite into how checkbox interceptor is working you can read <s:checkbox> not auto populating in struts2 form.

Another example that is using multiple checkboxes Struts 2 multiple check boxes example. Unlike the s:checkbox it doesn't work with any unchecked values and you can map values directly using listKey and listValue attributes.

这篇关于如何在 Struts 2 和 JSP 的 Action 类中仅取选定复选框的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
Java开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆