Unknown tag (c:forEach).解决

本文介绍了解决在使用JSTL的forEach标签时出现未知标签错误的方法,包括添加必要的jar文件、正确配置taglib指令及确保标签语法正确。

一、情况:

<c:forEach var="t" items="${sessionScope.t}">

</c:forEach>

二、报错 :Unknown tag (c:forEach).

三、解决:1、导入jstl.jar standard.jar 于web.inf-->lib中

                  (jstl.jar 和standard.jar 下载地址:https://download.youkuaiyun.com/download/zyckhuntoria/10350992

                  2、开头加上代码

                  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

                  3、剪切重新粘贴               

                    <c:forEach var="t" items="${sessionScope.t}">

             </c:forEach>


"use strict"; (window["@ecom-mcenter/ffa-goods:1.0.0.9056"] = window["@ecom-mcenter/ffa-goods:1.0.0.9056"] || []).push([ [1470], { 4523: function(n, e, t) { t.d(e, { G: function() { return u }, d: function() { return o } }); var i = t(63512), u = function(n) { return { stock_num: null == n ? void 0 : n.reduce(function(n, e) { return n + (e.stock_num || 0) }, 0), stock_inc_num: null == n ? void 0 : n.reduce(function(n, e) { return n + (e.stock_inc_num || 0) }, 0), multi_delivery_day_stocks: null == n ? void 0 : n.map(function(n) { return (0, i.A)((0, i.A)({}, n), {}, { stock_num: n.stock_num || 0 }) }) } }, r = function(n, e) { var t; return null != e && e.origin && null != e && e.skuid && null !== (t = e.origin["".concat(e.skuid, "-").concat(n)]) && void 0 !== t ? t : 0 }, o = function() { var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [], t = arguments.length > 2 ? arguments[2] : void 0, i = (null == n ? void 0 : n.multi_delivery_day_stocks) || []; return u(e.map(function(n) { var e = i.find(function(e) { return e.time_type === n.value }); return e || { time_type: n.value, time_desc: n.name, stock_num: r(n.value, t), stock_inc_num: 0 } })) } }, 10256: function(n, e, t) { t.d(e, { V: function() { return i } }); var i = function(n) { return n.YES = "1", n.NO = "0", n }({}) }, 11033: function(n, e, t) { t.d(e, { Bz: function() { return d } }); t(86111); var i = t(26993), u = t(63512), r = t(54806), o = t(45176), c = t(7192), l = t(67270), s = function(n) { return n["\u901a\u8fc7"] = "pass", n["\u63d0\u9192"] = "warn", n["\u963b\u585e\u53d1\u5e03"] = "block", n }({}), a = function(n) { var e = function(n) { var e, t = []; 0 === (null === (e = n.sku_price_verify_items) || void 0 === e ? void 0 : e.length) && t.push("sku_price_verify_items"), null != n && n.product_id && "undefined" !== (null == n ? void 0 : n.product_id) || t.push("product_id"); var i = (0, o.A)((0, r.A)(n, t), function(e, t) { return ["sku_price_verify_items"].includes(t) ? (e || []).map(function(n) { return (0, u.A)((0, u.A)({}, n), {}, { origin_price: (0, c.w)(Number(n.origin_price)), target_price: (0, c.w)(Number(n.target_price)) }) }) : "product_id" === t ? null === (i = n.product_id) || void 0 === i ? void 0 : i.toString() : e; var i }); return { category_id: n.category_id, product_id: i.product_id, is_commit: i.is_commit, sku_price_verify_items: i.sku_price_verify_items || [] } }(n); return e.sku_price_verify_items.some(function(n) { return !n.target_price }) || e.sku_price_verify_items.every(function(n) { return !n.origin_price }) ? Promise.reject("\u65e0\u9700\u53d1\u9001\u8bf7\u6c42\u6821\u9a8c") : (0, l.b)("/product/tproduct/verifyPriceV2", e) }, d = function(n, e) { a(n).then(function(n) { var t, u, r = n.data, o = r.verify_result, c = r.hit_price_verify_rule_items, l = (null == c || null === (t = c[0]) || void 0 === t || null === (t = t.price_verify_detail_items) || void 0 === t || null === (t = t[0]) || void 0 === t ? void 0 : t.verify_detail_desc) || (null == c || null === (u = c[0]) || void 0 === u ? void 0 : u.tip_text) || "\u5546\u54c1\u6539\u4ef7\u5f02\u5e38\uff0c\u8bf7\u786e\u8ba4\u6539\u4ef7\u540e\u7684\u5546\u54c1\u4ef7\u683c"; o !== s.\u963b\u585e\u53d1\u5e03 ? (o === s.\u63d0\u9192 && (i.Ay.destroy(), i.Ay.warning(l)), e()) : e(l) }).catch(function() { e() }) } }, 29197: function(n, e, t) { t.d(e, { BA: function() { return U }, B8: function() { return N }, Ez: function() { return R } }); var i = t(39473), u = t(6094), r = t(63512), o = t(77817), c = t(39155), l = t(77986), s = t(57404), a = t(67763), d = t(12553), f = t(95384), _ = t(41347), v = t(17654), m = t(64228), p = t(82768), k = t(18563), h = t(18261), y = t(10724), g = t(84859), A = t(67210), w = t(33040), b = t(4523), x = function(n) { return n.reduce(function(n, e) { var t = []; return n.forEach(function(n) { e.forEach(function(e) { t.push([].concat((0, u.A)(n), [e])) }) }), t }, [ [] ]) }, S = t(47455), E = t(86864), C = function(n) { var e, t = n.data, i = n.params, u = n.defaultData, o = (0, r.A)((0, r.A)({}, function(n) { return (0, r.A)({ id: (0, p.u)(), stock_info: { stock_num: 0 }, step_stock_info: { stock_num: 0 }, sku_status: !0, confirm_no_barcode: !1 }, n || {}) }(u)), t); return null !== (e = i.presellTime) && void 0 !== e && e.length ? (o.step_stock_info = (0, b.d)(o.step_stock_info, i.presellTime), o) : (o.step_stock_info && (o.step_stock_info.multi_delivery_day_stocks = []), o) }, j = function(n, e) { var t; e || ((0, l.Pp)(n, { withRules: !0, customRules: g.Uz, customMapValue: g.oS, arrayNodeFields: g.HQ }), null == n || null === (t = n.state.value) || void 0 === t || t.map(function(e, t) { var i = n.n(t); if (!1 === e.sku_status) i.node("id").state.disableValidate || (0, w.jL)(i, !0); else { var u, r = Boolean(null === (u = e.stock_info) || void 0 === u ? void 0 : u.use_cargo_stock); i.node("stock_info").setState({ disableValidate: r }, "\u7981\u7528\u5e93\u5b58\u6821\u9a8c"), i.node("step_stock_info").setState({ disableValidate: r }, "\u7981\u7528\u9636\u68af\u5e93\u5b58\u6821\u9a8c") } })) }, B = {}, U = {}, R = function(n) { var e = (n || {}).onFinish, t = (0, d.ox)(), i = t.nodeArray("sku_detail"), p = t.nodeArray("spec_detail"), g = (0, f.Nx)(), w = (0, f.O5)(), b = (0, S.Z)().columnMap, R = (0, s.r)(), N = R.start, V = R.report, F = (0, c.useRef)(function() {}); F.current = function(n) { var o, c = (0, l.YU)(t.na("presell_time")) ? t.na("presell_time").state.value : void 0, s = null === (o = b[A.jb]) || void 0 === o ? void 0 : o.available, d = (0, r.A)({}, s ? { custom_price_switch: !1 } : {}), f = function(n) { return (0, u.A)(null != n ? n : []).sort().join(",") }, m = (0, l.KW)(i, { withKeyList: { handler: function(n) { return f(null == n ? void 0 : n.spec_detail_ids) } } }), p = m.move, w = m.insert, x = m.remove, S = m.finish, E = m.value, U = m.keyList; n.forEach(function(e, t) { var i = U.indexOf(f(e.spec_detail_ids)); if (-1 !== i) { var u; if (i !== t) if (i === t) ; else if (p(i, t), E[t]) { var o; (0, y.n4)(null === (o = E[t]) || void 0 === o ? void 0 : o.spec_detail_ids, e.spec_detail_ids) || Object.assign(E[t], e) } else { E[t] = C({ data: e, defaultData: d, params: { presellTime: c } }); try { var l, s; null === (l = (0, k.i)()) || void 0 === l || null === (s = l.sendMeraCustom) || void 0 === s || s.call(l, "new_sku_move_error", { data: JSON.stringify({ oldIndex: i, index: t, skuDetailData: E, newSpec: n }) }) } catch (v) {} } else (0, y.n4)(null === (u = E[t]) || void 0 === u ? void 0 : u.spec_detail_ids, e.spec_detail_ids) || Object.assign(E[t], e) } else { var a, _ = B[null === (a = e.spec_detail_ids) || void 0 === a ? void 0 : a.join(",")] || {}; w(t, C({ defaultData: d, data: (0, r.A)((0, r.A)({}, _), e), params: { presellTime: c } })) } }); var R = {}; n.forEach(function(n, e) { R[f(null == n ? void 0 : n.spec_detail_ids)] = e }); var N = []; null == E || E.forEach(function(n, e) { var t, i; - 1 === (null !== (t = R[f(n.spec_detail_ids)]) && void 0 !== t ? t : -1) && (N.push(e), null != n && null !== (i = n.spec_detail_ids) && void 0 !== i && i.length && (B[n.spec_detail_ids.join(",")] = (0, y.o8)(n))) }), N.sort(function(n, e) { return e - n }), N.forEach(function(n) { x(n) }), (0, _.xn)(), (0, v.Nb)(), S(), j(i, g), (0, h.kU)(function() { null == e || e(), null === a.Q || void 0 === a.Q || a.Q.unlock(), (0, _.$p)(), (0, v.zr)() })() }; var P = (0, c.useCallback)((0, o.default)(function() { N(); var n = p.state.value, e = (null == n ? void 0 : n.filter(function(n) { var e; return null === (e = n.spec_values) || void 0 === e ? void 0 : e.length })) || [], t = [], i = []; e.forEach(function(n) { (n.is_default ? t : i).push(n.spec_values.map(function(e) { return { spec_id: n.id, spec_val_id: e.id } })) }); var u = (null != n && n.length ? null != i && i.length ? x(i) : null != t && t.length ? x(t) : [] : []).map(function(n) { var e = []; return n.forEach(function(n) { e.push(n.spec_val_id) }), { spec_detail_ids: e } }); F.current(u), V("sku_row_compute") }, a.u), []), M = (0, c.useCallback)(function() { a.Q.lock(), P() }, [P]); U.current = M, (0, c.useEffect)(function() { return function() { U.current = void 0 } }, []), (0, l.U5)(function() { a.Q.setTimeoutCallback(function() { var n; null === (n = U.current) || void 0 === n || n.call(U); try { var e; t.n("runtime").n("recording_operation").setValue("sku_props_lock_timeout_v2", "error"), null === (e = (0, k.i)()) || void 0 === e || e.sendMeraCustom("publish_unknown_error", { is_error: "sku_props_lock_timeout" }) } catch (i) {} }) }, []); var Q = (0, c.useRef)(!0); (0, c.useEffect)(function() { Q.current ? setTimeout(M, 180) : M(), Q.current = !1 }, [w]), (0, E.q4)(M); var T = (0, c.useMemo)(function() { return (0, o.default)(function() { a.Q.isLock || j(i, g) }, 50) }, [i]); (0, c.useEffect)(function() { if (i) return (0, l.eX)(i, l.bV, T) }, [i]), (0, m.v)(i, "id", T, { debounce: !1, watchChildrenFn: v.zr }) }, N = function() { var n = (0, c.useState)(!1), e = (0, i.A)(n, 2), t = e[0], u = e[1], r = (0, c.useCallback)(function() { t || u(!0) }, [t]); return (0, c.useEffect)(function() { setTimeout(function() { u(!0) }, 1e3) }, []), { isComputeSpecFinish: t, onFinish: r } } }, 33040: function(n, e, t) { t.d(e, { jL: function() { return y } }); var i, u = t(39473), r = (t(1329), t(35214)), o = (t(46472), t(53952)), c = (t(86111), t(26993)), l = t(39155), s = t(27449), a = t(12553), d = t(87345), f = t(2896), _ = t(71421), v = t(34388), m = t(17833), p = t(59834), k = t(33073), h = "sku_status", y = function(n, e) { i || (i = ["gold_process_charge", "source_product", "cb_wares_info", "suit_num", "sku_renewal_promotion"]), n.allChildren.forEach(function(n) { var t; null !== (t = i) && void 0 !== t && t.includes(n.field) || n.setState({ disableValidate: e }, "\u4e0b\u67b6SKU\u7981\u7528\u89c4\u5219") }) }, g = function(n) { var e, t = n.form, i = (0, a.ox)(), u = (0, _.Fl)(t.n("sku_status")), l = null !== (e = (0, _.Fl)(t.n("reason"))) && void 0 !== e ? e : ""; return (0, k.jsxs)("div", { children: [(0, k.jsxs)("div", { className: p.A.skuStatusRow, children: [(0, k.jsx)("div", { style: { marginRight: 4 }, children: !0 === u ? "\u5df2\u4e0a\u67b6" : "\u5df2\u4e0b\u67b6" }), (0, k.jsx)(v.A, { form: t, columnKey: h, valuePropName: "checked", onUpdateValue: function(n, e) { var u = i.na("sku_detail").state.value.filter(function(n) { return n.sku_status }); return e && !n && u.length < 2 ? (c.Ay.warn("\u81f3\u5c11\u542f\u7528\u4e00\u4e2aSKU"), !0) : (y(t, !n), t.validateValue(), n) }, children: (0, k.jsx)(o.A, { size: "small" }) })] }), !u && l.length > 0 && (0, k.jsx)("div", { className: p.A.skuStatusRow, children: (0, k.jsx)(r.A, { content: (0, k.jsx)(d.Pr, { tag: "div", content: l }), children: (0, k.jsx)("span", { style: { marginTop: "1px", borderBottom: "1px dashed", fontSize: "10px" }, children: "\u67e5\u770b\u539f\u56e0" }) }) })] }) }; e.Ay = { key: h, column: function(n) { var e, t = n.title, i = n.required, r = n.disabled, o = (0, l.useState)(!1), c = (0, u.A)(o, 2), a = c[0], d = c[1]; return { title: (0, k.jsx)(s.SingleGuide, { uuid: h, title: "\u65b0\u589e\u300cSKU\u72b6\u6001\u300d\u8bbe\u7f6e", placement: "left", content: "\u53ef\u4ee5\u5728\u6b64\u5904\u7075\u6d3b\u8bbe\u7f6e\u5546\u54c1SKU\u72b6\u6001\uff0cSKU\u8bbe\u7f6e\u4e0b\u67b6\u540e\uff0c\u5219\u6d88\u8d39\u8005\u5728\u6296\u97f3\u4e0d\u80fd\u9009\u4e2d\u6b64SKU\u8fdb\u884c\u8d2d\u4e70", visible: a, onOk: function() { return d(!1) }, targetEle: document.getElementById("goodsEditScrollContainer") || (null === (e = (0, f.mS)()) || void 0 === e || null === (e = e.document) || void 0 === e ? void 0 : e.body), children: (0, k.jsx)(m.F, { disabled: r, value: t, required: i }) }), key: h, width: 108, fixed: "right", render: function(n) { var e = n.form; return (0, k.jsx)(g, { form: e }) } } } } }, 47455: function(n, e, t) { t.d(e, { G: function() { return l }, Z: function() { return c } }); var i = t(39155), u = t(77986), r = t(12553), o = t(76718), c = function() { var n = (0, r.ox)().nodeArray("sku_detail"), e = (0, u.cw)(n, "columns") || o.Ml, t = (0, i.useMemo)(function() { return e.map(function(n) { if (n.key && n.available && !n.hidden) return n }).filter(Boolean) }, [e]); return { columnMap: (0, i.useMemo)(function() { return null != t && t.length ? null == t ? void 0 : t.reduce(function(n, e) { return n[e.key] = e, n }, {}) : {} }, [t]), columns: t } }, l = function(n) { var e, t = ((null === (e = n.nodeArray("sku_detail").extra) || void 0 === e ? void 0 : e.columns) || []).map(function(n) { if (n.key && n.available && !n.hidden) return n }).filter(Boolean); return { columnMap: null != t && t.length ? null == t ? void 0 : t.reduce(function(n, e) { return n[e.key] = e, n }, {}) : {}, columns: t } } }, 53579: function(n, e, t) { t.d(e, { A9: function() { return r }, XB: function() { return o }, kW: function() { return u } }); var i = t(46230), u = (t(77986), function(n) { return n.BBC = "1", n.BC = "2", n.CC = "3", n.DUTY_FREE = "4", n.VIP = "5", n }({})), r = (0, i.A)((0, i.A)((0, i.A)((0, i.A)((0, i.A)({}, u.BBC, "\u8de8\u5883\u7533\u62a5-\u4fdd\u7a0e\u5907\u8d27"), u.BC, "\u8de8\u5883\u7533\u62a5-\u76f4\u90ae\u8fdb\u53e3"), u.CC, "\u90ae\u5173-\u884c\u90ae"), u.DUTY_FREE, "\u79bb\u5c9b\u514d\u7a0e"), u.VIP, "\u6d77\u5357\u4f1a\u5458\u8d2d"), o = function(n) { return n[n.Normal = 0] = "Normal", n[n.HighRisk = 1] = "HighRisk", n[n.AllUnSelected = 2] = "AllUnSelected", n[n.UnRecommend = 3] = "UnRecommend", n }({}) }, 59834: function(n, e) { e.A = { previewColumn: "styles_previewColumn__Bfyoy", weightSuggest: "styles_weightSuggest__PfxRi", content: "styles_content__QfmP3", arrow: "styles_arrow__rHreS", overload: "styles_overload__eQnGE", warning: "styles_warning__c8_Oi", title: "styles_title__cTMFk", text: "styles_text__G3m7r", weightColumn: "styles_weightColumn__qFfPx", skuStatusRow: "styles_skuStatusRow__ruQ75" } }, 67210: function(n, e, t) { t.d(e, { Ni: function() { return i }, jb: function() { return u } }); var i = "price", u = "custom_price_switch" }, 70514: function(n, e, t) { t.d(e, { F9: function() { return a }, PC: function() { return s }, dK: function() { return l }, zc: function() { return d } }); var i = t(39155), u = t(41e3), r = t(77986), o = t(18261), c = t(12553), l = function() { return (0, c.ox)().node(r.PQ) }, s = function() { for (var n = arguments.length, e = new Array(n), t = 0; t < n; t++) e[t] = arguments[t]; var c = l(), s = (0, r.CH)(), a = (0, i.useRef)({}); return (0, u.A)(function() { var n = c.state.value; null == e || e.forEach(function(e) { a.current[e] = null == n ? void 0 : n[e] }) }, []), (0, i.useEffect)(function() { var n = (0, o.kU)(s), t = null == e ? void 0 : e.map(function(e) { return c.node(e).watchState("value", function(t) { a.current[e] = t, n().catch(function() {}) }) }); return function() { null == t || t.forEach(function(n) { return null == n ? void 0 : n() }) } }, []), a.current }, a = function() { var n = l(); return function(e) { Object.keys(e).forEach(function(t) { n.node(t).setValue(e[t], "\u66f4\u65b0global\u503c") }) } }, d = function() { var n = l(); return function(e) { return e ? n.node(e).state.value : n.state.value } } }, 83941: function(n, e, t) { t.d(e, { P: function() { return a } }); var i = t(55848), u = t(84918), r = t(39155), o = t(19294), c = t(12553), l = t(60456), s = t(70514), a = function() { var n = (0, c.ox)(), e = n.nodeArray("sku_detail"), t = (0, s.F9)(), a = (0, o.A)(function() { var r = (e.state.value || []).filter(function(n) { return !1 !== n.sku_status }), o = r.filter(function(n) { return Boolean(n) && Boolean(n.price) }).map(function(n) { return Number(n.price) }), c = r.map(function(n) { var e, t; return Number(((null === (e = n.stock_info) || void 0 === e ? void 0 : e.stock_num) || 0) + ((null === (t = n.stock_info) || void 0 === t ? void 0 : t.stock_inc_num) || 0)) }).filter(Boolean); t({ sku_min_price: (0, i.A)(o), sku_max_price: (0, u.A)(o), sku_min_stock: (0, i.A)(c) }), n.n("runtime").n("sku_price_finished").setValue(o.length === r.length, "\u6807\u8bb0\u662f\u5426\u6240\u6709\u5728\u67b6sku\u4ef7\u683c\u90fd\u586b\u5199\u5b8c\u6bd5") }, { wait: 100 }).run; (0, r.useEffect)(function() { return (0, l.c)(e, a) }, []) } } } ]); 请帮我分析这段代码中,spec_detail_ids的生成过程
最新发布
08-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值