Javascript 有没有一种简单的方法可以添加struts 1.3 html styleId属性而不必触及每个元素?
我目前正在使用遗留代码,试图让它在较新的浏览器中正常工作。代码使用Struts 1.3编写,并以以下方式广泛使用html标记库: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属性而不涉
<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*