Javascript 有没有一种简单的方法可以添加struts 1.3 html styleId属性而不必触及每个元素?

Javascript 有没有一种简单的方法可以添加struts 1.3 html styleId属性而不必触及每个元素?,javascript,java,jsp,struts,struts-1,Javascript,Java,Jsp,Struts,Struts 1,我目前正在使用遗留代码,试图让它在较新的浏览器中正常工作。代码使用Struts 1.3编写,并以以下方式广泛使用html标记库: <html:text property="myTextInput" maxlength="10"/> 我还找到了document.getElementByName(),但这会导致接触大量javascript,而且(由于代码不好),我不知道它是否真的是通过id或name引用元素,因此这可能会导致一些问题 有没有一种简单的方法可以添加styleId属性而不涉

我目前正在使用遗留代码,试图让它在较新的浏览器中正常工作。代码使用Struts 1.3编写,并以以下方式广泛使用html标记库:

<html:text property="myTextInput" maxlength="10"/>
我还找到了
document.getElementByName()
,但这会导致接触大量javascript,而且(由于代码不好),我不知道它是否真的是通过
id
name
引用元素,因此这可能会导致一些问题


有没有一种简单的方法可以添加styleId属性而不涉及每个元素?

我最后编写了一个小型java main方法来处理这个问题。我使用regex查找
html
元素(
select
option
text
hidden
textarea
),这些元素还没有
styleId
属性,然后添加
styleId
属性,该属性的值与
属性的值相同。这可以扩展为一次处理一堆文件,但现在我只想处理单个文件,这样我就可以轻松地对照源代码管理检查它们,确保它正常工作。这是一个快速而肮脏的问题解决方案,因此我不必手动梳理成吨的jsp文件,因此我确信它不会处理一些边缘情况。话虽如此:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class JspModifierStyleId {

    public static void main(String[] args) throws IOException {
        String lineEnding = "\r\n";
        String baseDir= "C:/path/to/your/directory/";   //Change this to suit your directory

        String origFileName= "OriginalFile.jsp";  //Change this to suit your original file that needs the attribute added
        File origFile = new File(baseDir + origFileName);

        String tempFileName = "TemporaryFile.jsp";
        File tempFile = new File(baseDir + tempFileName);

        Pattern p = Pattern.compile("^(?!.*styleId)\\s*<html:(?:select|option|text|hidden|textarea)\\s.*property=\"([a-zA-Z1-9.]*)\".+");

        FileReader in = new FileReader(origFile);
        FileWriter out = new FileWriter(tempFile);

        BufferedReader br = new BufferedReader(in);
        BufferedWriter bw = new BufferedWriter(out);


        String line;
        while ((line = br.readLine()) != null) {
            Matcher m = p.matcher(line);
            if(m.matches()){
                String strWithStyleId = line.substring(0, m.start(1)) + m.group(1) + "\" styleId=\"" + line.substring(m.start(1));
                bw.write(strWithStyleId + lineEnding);
                System.out.println(strWithStyleId);
            }else {
                bw.write(line + lineEnding);
            }
        }

        br.close();
        bw.close();

        //copies back to original file, BE CAREFUL!!! 
        copyFile(tempFile, origFile);
    }

    public static void copyFile(File sourceFile, File destFile) throws IOException {
        if(!destFile.exists()) {
            destFile.createNewFile();
        }

        FileChannel source = null;
        FileChannel destination = null;

        try {
            source = new FileInputStream(sourceFile).getChannel();
            destination = new FileOutputStream(destFile).getChannel();
            destination.transferFrom(source, 0, source.size());
        }
        finally {
            if(source != null) {
                source.close();
            }
            if(destination != null) {
                destination.close();
            }
        }
    }
}
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.nio.channels.FileChannel;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类JspModifierStyleId{
公共静态void main(字符串[]args)引发IOException{
字符串lineEnding=“\r\n”;
String baseDir=“C:/path/to/your/directory/”;//将其更改为适合您的目录
String origFileName=“OriginalFile.jsp”;//将其更改为适合需要添加属性的原始文件
文件origFile=新文件(baseDir+origFileName);
字符串tempFileName=“TemporaryFile.jsp”;
File tempFile=新文件(baseDir+tempFileName);

Pattern p=Pattern.compile(“^(?。*styleId)\\s*我最终编写了一个小型java main方法来处理这个问题。我使用正则表达式来查找
html
元素(
select
option
hidden
textarea
)它没有
styleId
属性,然后添加
styleId
属性,该属性的值与
property
属性的值相同。这可以扩展为一次处理一堆文件,但现在我只想处理单个文件,这样我就可以根据源代码管理轻松检查它们,并确保无法正常工作。这是一个快速而肮脏的问题解决方案,因此我不必手动梳理成吨的jsp文件,因此我确信它不会处理某些边缘情况。因此:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class JspModifierStyleId {

    public static void main(String[] args) throws IOException {
        String lineEnding = "\r\n";
        String baseDir= "C:/path/to/your/directory/";   //Change this to suit your directory

        String origFileName= "OriginalFile.jsp";  //Change this to suit your original file that needs the attribute added
        File origFile = new File(baseDir + origFileName);

        String tempFileName = "TemporaryFile.jsp";
        File tempFile = new File(baseDir + tempFileName);

        Pattern p = Pattern.compile("^(?!.*styleId)\\s*<html:(?:select|option|text|hidden|textarea)\\s.*property=\"([a-zA-Z1-9.]*)\".+");

        FileReader in = new FileReader(origFile);
        FileWriter out = new FileWriter(tempFile);

        BufferedReader br = new BufferedReader(in);
        BufferedWriter bw = new BufferedWriter(out);


        String line;
        while ((line = br.readLine()) != null) {
            Matcher m = p.matcher(line);
            if(m.matches()){
                String strWithStyleId = line.substring(0, m.start(1)) + m.group(1) + "\" styleId=\"" + line.substring(m.start(1));
                bw.write(strWithStyleId + lineEnding);
                System.out.println(strWithStyleId);
            }else {
                bw.write(line + lineEnding);
            }
        }

        br.close();
        bw.close();

        //copies back to original file, BE CAREFUL!!! 
        copyFile(tempFile, origFile);
    }

    public static void copyFile(File sourceFile, File destFile) throws IOException {
        if(!destFile.exists()) {
            destFile.createNewFile();
        }

        FileChannel source = null;
        FileChannel destination = null;

        try {
            source = new FileInputStream(sourceFile).getChannel();
            destination = new FileOutputStream(destFile).getChannel();
            destination.transferFrom(source, 0, source.size());
        }
        finally {
            if(source != null) {
                source.close();
            }
            if(destination != null) {
                destination.close();
            }
        }
    }
}
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.File;
导入java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.FileReader;
导入java.io.FileWriter;
导入java.io.IOException;
导入java.nio.channels.FileChannel;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类JspModifierStyleId{
公共静态void main(字符串[]args)引发IOException{
字符串lineEnding=“\r\n”;
String baseDir=“C:/path/to/your/directory/”;//将其更改为适合您的目录
String origFileName=“OriginalFile.jsp”;//将其更改为适合需要添加属性的原始文件
文件origFile=新文件(baseDir+origFileName);
字符串tempFileName=“TemporaryFile.jsp”;
File tempFile=新文件(baseDir+tempFileName);
模式p=Pattern.compile(“^(?。*styleId)\\s*