JavaWeb —— 数组转字符串的 JavaBean

在程序开发中,将数组转为字符串是经常使用的,如表单中的复选框按钮,在提交之后就是一个数组对象,由于数组对象在处理中不方便,因此实际应用中通过将其转换成字符串后再进行处理。

以下实例为将数组转换成字符串的实际应用,实现对问卷调查表单中复选框的数值的处理

1.创建 Paper 类,进行封装

package javabean;

public class Paper {
    private String[] languages;
    private String[] technics;
    private String[] parts;
	
    public Paper() {
    }

    public String[] getLanguages() {
        return languages;
    }
    public void setLanguages(String[] languages) {
        this.languages = languages;
    }
    public String[] getTechnics() {
        return technics;
    }
    public void setTechnics(String[] technics) {
        this.technics = technics;
    }
    public String[] getParts() {
        return parts;
    }
    public void setParts(String[] parts) {
        this.parts = parts;
    }
}

2.创建将数组转换为字符串的 JavaBean 对象,在该类中编写 arr2Str() 方法,将数组对象转换为指定格式字符串,通过 for 循环遍历数组,将数组元素转换成 " , " 分隔的字符串对象,由于 String 对象不可变,每次改变长度都需新建一新的 String 对象,而 StringBuffer 是可变的字符序列,因此在字符串经常修改的地方使用 StringBuffer

package javabean;

public class Convert {
    public String arr2Str(String[] arr) {
        StringBuffer sb=new StringBuffer();//StringBuffer 可变的字符序列
        if(arr!=null && arr.length>0) {//判断arr是否为有效数组
            for(String s:arr) {//遍历数组
                sb.append(s);//将字符串追加到StringBuffer中
                sb.append(",");
            }
		    
            if(sb.length()>0) {//判断字符串长度是否有效
                sb=sb.deleteCharAt(sb.length()-1);//截取字符
            }
        }
		
        return sb.toString();
    }
}

3.创建主页面,在页面中存放所需表单,对于属性相同的 checkbox 值,会被转换为一个数组对象

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8" %>
<form action="reg.jsp" method="post">
    <h1>调查问卷</h1> <hr>
    <ul>
        <li>经常使用哪种编程语言开发:</li>
        <li>
            <input type="checkbox" name="languages" value="Java"> Java
            <input type="checkbox" name="languages" value="C++"> C++
            <input type="checkbox" name="languages" value="Python"> Python
            <input type="checkbox" name="languages" value="PHP"> PHP
        </li>		
    </ul>
    <ul>
        <li>目前掌握的技术:</li>
        <li>
            <input type="checkbox" name="technics" value="JSP"> Java
            <input type="checkbox" name="technics" value="C++"> C++
            <input type="checkbox" name="technics" value="Python"> Python
            <input type="checkbox" name="technics" value="PHP"> PHP
        </li>		
    </ul>	
    <ul>
        <li>在学习中哪一部分感觉有困难:</li>
        <li>
            <input type="checkbox" name="parts" value="Java"> Java
            <input type="checkbox" name="parts" value="C++"> C++
            <input type="checkbox" name="parts" value="Python"> Python
            <input type="checkbox" name="parts" value="PHP"> PHP
        </li>		
    </ul>
    <input type="submit" value="提交">
</form>

4.创建名为 reg.jsp 的页面,用于对 index.jsp 页面表单提交请求进行处理,将用户所提交的结果输出到页面中

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<jsp:useBean id="paper" class="javabean.Paper"/>
<jsp:useBean id="convert" class="javabean.Convert"/>
<jsp:setProperty property="*" name="paper"/>
<h1>调查结果</h1> <hr/>
<ul>
    <li> 经常使用的编程语言:<%= convert.arr2Str(paper.getLanguages()) %> </li>
    <li> 目前掌握的技术:<%= convert.arr2Str(paper.getTechnics()) %> </li>
    <li> 有困难的部分:<%= convert.arr2Str(paper.getParts()) %> </li>
</ul>

运行界面:

猜你喜欢

转载自blog.csdn.net/qq_41204918/article/details/90141011
今日推荐