如何在struts2和jsp中的Action类中仅获取所选复选框的值 [英] How to take values of only selected checkbox in Action class in struts2 and jsp

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

问题描述

这里我显示了24个复选框。我想获取操作类中已选中复选框的所有值,并将其作为新记录插入到数据库中。插入按钮后,我将成功获取复选框上的复选框值。我提到了这个链接按照史蒂文先生的回答,但在我的帮助下,我只能显示布尔值,但在这里我想要选中复选框的文本值。所以下面是我的jsp页面。

Here 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>  

以下是我的预订者和吸气者类

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;
    }

}  

以下是我的行动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..");
        }

    }

}  


推荐答案

属性不应为空 value =。如果您按照链接的答案,您已经看到 s:复选框标签被使用。呈现此标记时,它为已选中和未选中复选框提供了字段值。并且评论Dave Newton在他的书它应该具有值 true false 中的通知是目前唯一可行的值。这些只是与复选框拦截器一起正常工作的值。

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."




标记呈现单个
复选框
。在撰写本文时,只有
适用于
布尔
(或布尔)属性。尝试预设复选框
,例如,字符串值仅在字符串为
时为

false

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 .






有一个例子 Struts 2复选框示例,它使用了这样的 fieldValue 属性。


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

如果您想深入了解复选框拦截器是否正常工作,您可以阅读 < s:复选框> 不能以struts2形式自动填充

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

另一个使用多个复选框的示例 Struts 2多个复选框示例。与 s:复选框不同,它不适用于任何未经检查的值,您可以使用 listKey 和<直接映射值code> listValue attributes。

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.

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆