gpt4 book ai didi

java - 如何使用 XML (SAXParser) 中的元素并将其显示到表中

转载 作者:行者123 更新时间:2023-12-01 11:36:38 25 4
gpt4 key购买 nike

我正在开发一个使用 Spring MVC 和 Hibernate 的 Web 应用程序,

我的字段类型是 Clob,值是 XML,之前使用 SAXParser 解析了 clob,如何使用 SAXParser 中的元素并将其显示到表中,

Output from SAXParser

我真的不知道如何将 SAXParser 中的元素显示到我的表 (JSP)

table

这是我的代码,

@RequestMapping(value="/admin/Detail-BPJS-TK.html")
public ModelAndView listDetailBPJSTK(ModelMap model, HttpServletRequest request, HttpServletResponse response)throws ParserConfigurationException, SAXException, Exception{
if(!((request.getParameter("MESSAGEID")) == null)){
String MESSAGEID = request.getParameter("MESSAGEID");
System.out.println(MESSAGEID);
//140721438362
//DetailBPJS detailbpjs = detailbpjsService.get(MESSAGEID);

//String tes = detailbpjs.getMESSAGEID();
//System.out.println(tes);

Configuration cfg = new Configuration();
cfg.configure("hibernatesoaappbpjstk.cfg.xml");

SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();

String pay = "PAYMENT";
String sub = "PROCESSED";

Query query = session.createQuery("from DetailBPJS where TRANSACTION = :tra and SUBTRANSACTION = :sub and MESSAGEID = :mes");
query.setParameter("tra", pay);
query.setParameter("sub", sub);
query.setParameter("mes", MESSAGEID);

@SuppressWarnings("unchecked")
List <DetailBPJS> result = query.list();

if(result.isEmpty()){
System.out.println("Please, check the 'No. Billing' again!!");
System.out.println(MESSAGEID);
model.addAttribute("errorMessageBPJSTK", "true");
}else{
DetailBPJS data = (DetailBPJS)result.get(0);
String nom1 = data.getTRANSACTION();
String nom2 = data.getSUBTRANSACTION();
String nom3 = data.getUUID();
Clob nom4 = data.getRAWDATA();

System.out.println(nom1 + " - " + nom2 + " - " + nom3 + " - " + nom4);
//140721438362

//convert clob to java.io.reader
Reader myclob = nom4.getCharacterStream();
System.out.println(myclob);

//create InputSource from Reader
InputSource myinput = new InputSource(myclob);
System.out.println(myinput);

try {

SAXParserFactory factoryz = SAXParserFactory.newInstance();
SAXParser saxParser = factoryz.newSAXParser();
System.out.println(saxParser);

DefaultHandler handler = new DefaultHandler(){
boolean b_num = false;
boolean b_krb = false;
boolean b_reqid = false;
boolean b_ch = false;
boolean b_kb = false;
boolean b_tgl = false;
boolean tot = false;
boolean jht = false;
boolean jkk = false;
boolean jkm = false;

public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException{
if (qName.equalsIgnoreCase("messageId")){
b_num = true;
}
if (qName.equalsIgnoreCase("bpjs:kodeRefBank")){
b_krb = true;
}
if (qName.equalsIgnoreCase("bpjs:reqId")){
b_reqid = true;
}
if (qName.equalsIgnoreCase("bpjs:chId")){
b_ch = true;
}
if (qName.equalsIgnoreCase("bpjs:kodeBank")){
b_kb = true;
}
if (qName.equalsIgnoreCase("bpjs:tglTrx")){
b_tgl = true;
}
if (qName.equalsIgnoreCase("totalAmount")){
tot = true;
}
if (qName.equalsIgnoreCase("amountJHT")){
jht = true;
}
if (qName.equalsIgnoreCase("amountJKK")){
jkk = true;
}
if (qName.equalsIgnoreCase("amountJKM")){
jkm = true;
}
}

public void characters(char ch[], int start, int length) throws SAXException{
if (b_num){
System.out.println("(1) Value of Billing Number : " + new String(ch, start, length));
String tust = new String(ch, start, length);
System.out.println(tust);
b_num = false;
}
if (b_krb){
System.out.println("(2) Value Of KodeRefBank : " + new String(ch, start, length));
b_krb = false;
}
if (b_reqid){
System.out.println("(3) Value Of ReqId : " + new String(ch, start, length));
b_reqid = false;
}
if (b_ch){
System.out.println("(4) Value Of ChId : " + new String(ch, start, length));
b_ch = false;
}
if (b_kb){
System.out.println("(5) Value Of KodeBank : " + new String(ch, start, length));
b_kb = false;
}
if (b_tgl){
System.out.println("(6) Value Of TglTrx : " + new String(ch, start, length));
b_tgl = false;
}
if (tot){
System.out.println("(7) Value Of Tot : " + new String(ch, start, length));
tot = false;
}
if (jht){
System.out.println("(8) Value Of JHT : " + new String(ch, start, length));
jht = false;
}
if (jkk){
System.out.println("(9) Value Of JKK : " + new String(ch, start, length));
jkk = false;
}
if (jkm){
System.out.println("(10) Value Of JKM : " + new String(ch, start, length));
jkm = false;
}
}
};
saxParser.parse(myinput, handler);

} catch (Exception e) {
e.printStackTrace();

// TODO: handle exception
}

//SAX Parser to parse this xml

}
session.close();
factory.close();
}else{
System.out.println("Please, check the 'No. Billing' again!!");
String MESSAGEID = request.getParameter("MESSAGEID");
System.out.println(MESSAGEID);
model.addAttribute("errorMessageBPJSTK", "true");
}

return listDetailBPJS(model);
}

任何帮助都会很高兴:) ~

最佳答案

您可以直接将String值添加到ModelMap并从jsp访问它们,与“errorMessageBPJSTK”相同。

if(b_num){
model.addAttribute("billingNumber",new String(ch, start, length));
b_num = false;
}
if(b_krb){
model.addAttribute("kodeRefBank",new String(ch, start, length));
b_krb = false;
}

并在jsp中访问它们,例如;

<td>Billing Number : </td>
<td>${billingNumber}</td>

关于java - 如何使用 XML (SAXParser) 中的元素并将其显示到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29912309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com