本文整理汇总了Java中org.apache.wicket.markup.head.OnDomReadyHeaderItem类的典型用法代码示例。如果您正苦于以下问题:Java OnDomReadyHeaderItem类的具体用法?Java OnDomReadyHeaderItem怎么用?Java OnDomReadyHeaderItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
OnDomReadyHeaderItem类属于org.apache.wicket.markup.head包,在下文中一共展示了OnDomReadyHeaderItem类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forReference(new MarkdownResourceReference()));
String encodedAttachmentSupport;
if (getAttachmentSupport() != null) {
encodedAttachmentSupport = Base64.encodeBase64String(SerializationUtils.serialize(getAttachmentSupport()));
encodedAttachmentSupport = StringUtils.deleteWhitespace(encodedAttachmentSupport);
encodedAttachmentSupport = StringEscapeUtils.escapeEcmaScript(encodedAttachmentSupport);
encodedAttachmentSupport = "'" + encodedAttachmentSupport + "'";
} else {
encodedAttachmentSupport = "undefined";
}
String callback = ajaxBehavior.getCallbackFunction(explicit("action"), explicit("param1"), explicit("param2"),
explicit("param3")).toString();
String autosaveKey = getAutosaveKey();
if (autosaveKey != null)
autosaveKey = "'" + JavaScriptEscape.escapeJavaScript(autosaveKey) + "'";
else
autosaveKey = "undefined";
String script = String.format("gitplex.server.markdown.onDomReady('%s', %s, %d, %s, %d, %b, %b, %s);",
container.getMarkupId(),
callback,
ATWHO_LIMIT,
encodedAttachmentSupport,
getAttachmentSupport()!=null?getAttachmentSupport().getAttachmentMaxSize():0,
getUserMentionSupport() != null,
getPullRequestReferenceSupport() != null,
autosaveKey);
response.render(OnDomReadyHeaderItem.forScript(script));
script = String.format("gitplex.server.markdown.onWindowLoad('%s');", container.getMarkupId());
response.render(OnLoadHeaderItem.forScript(script));
}
开发者ID:jmfgdev,项目名称:gitplex-mit,代码行数:38,代码来源:MarkdownEditor.java
示例2: renderInitializationScript
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
protected void renderInitializationScript(IHeaderResponse response) {
T value;
if (getWebRequest().getRequestParameters().getParameterNames().contains(getInputName())) {
convertInput();
value = getConvertedInput();
} else {
value = getModelObject();
}
if (value != null) {
JsonBuilder selection = new JsonBuilder();
try {
selection.object();
getProvider().toJson(value, selection);
selection.endObject();
} catch (JSONException e) {
throw new RuntimeException("Error converting model object to Json", e);
}
response.render(OnDomReadyHeaderItem.forScript(
JQuery.execute("$('#%s').select2('data', %s);", getJquerySafeMarkupId(), selection.toJson())));
}
}
开发者ID:jmfgdev,项目名称:gitplex-mit,代码行数:27,代码来源:Select2Choice.java
示例3: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forReference(new SourceEditResourceReference()));
String autosaveKey = JavaScriptEscape.escapeJavaScript(context.getAutosaveKey());
String jsonOfMark = context.getMark()!=null?getJson(context.getMark()):"undefined";
String script = String.format("gitplex.server.sourceEdit.onDomReady('%s', '%s', %s, '%s', %s, '%s', %b, '%s');",
sourceFormComponent.getMarkupId(),
JavaScriptEscape.escapeJavaScript(context.getNewPath()),
jsonOfMark,
sourceFormat.getIndentType(),
sourceFormat.getTabSize(),
sourceFormat.getLineWrapMode(),
context.getMode() == Mode.EDIT,
autosaveKey);
response.render(OnDomReadyHeaderItem.forScript(script));
script = String.format("gitplex.server.sourceEdit.onWindowLoad('%s', %s, '%s');",
sourceFormComponent.getMarkupId(), jsonOfMark, autosaveKey);
response.render(OnLoadHeaderItem.forScript(script));
}
开发者ID:jmfgdev,项目名称:gitplex-mit,代码行数:23,代码来源:SourceEditPanel.java
示例4: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
StringBuilder sb = new StringBuilder();
sb.append("$('#");
sb.append(component.getMarkupId());
sb.append("').tooltip({html:true");
if(!isInsideModal()){
sb.append(", 'container':'body'");
} else {
sb.append(", 'container':'#");
sb.append(getModalContainer(component));
sb.append("'");
}
sb.append("});");
response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
}
开发者ID:Pardus-Engerek,项目名称:engerek,代码行数:22,代码来源:TooltipBehavior.java
示例5: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(CssHeaderItem.forReference(STYLE_CSS));
response.render(CssHeaderItem.forReference(DIAGRAM_CSS));
response.render(CssHeaderItem.forReference(BPMN_CSS));
response.render(JavaScriptHeaderItem.forReference(BPMN_MODELER_JS));
Map<String, Object> params = new HashMap<String, Object>();
params.put("componentId", getMarkupId());
params.put("xmlComponentId", xml.getMarkupId());
params.put("lang", getLocale().getLanguage());
TextTemplate template = new PackageTextTemplate(BpmnModeler.class, "bpmnmodeler.tmpl.js");
response.render(OnDomReadyHeaderItem.forScript(template.asString(params)));
}
开发者ID:OrienteerBAP,项目名称:wicket-bpmn-io,代码行数:18,代码来源:BpmnModeler.java
示例6: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forReference(BootstrapModalJavaScriptResourceReference.get()));
Event confirmEvent = new Event(BootstrapConfirmEvent.CONFIRM) {
private static final long serialVersionUID = 6466300052232971891L;
@Override
public JsScope callback() {
return JsScopeEvent.quickScope(
new JsStatement()
.append("window.location = " + JsUtils.quotes(getURL(), true)).append(";")
.append("event.preventDefault();")
);
}
};
response.render(OnDomReadyHeaderItem.forScript(new JsStatement().$(this).chain(confirmEvent).render(true)));
}
开发者ID:openwide-java,项目名称:owsi-core-parent,代码行数:19,代码来源:ConfirmLink.java
示例7: internalRenderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
protected void internalRenderHead(IHeaderResponse response) {
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(Application.get().getJavaScriptLibrarySettings().getJQueryReference())));
super.renderHead(response);
final String suffix = DEVELOPMENT == getApplication().getConfigurationType() ? "" : ".min";
response.render(CssHeaderItem.forUrl(String.format("css/theme_om/jquery-ui%s.css", suffix)));
response.render(CssHeaderItem.forUrl(String.format("css/theme%s.css", suffix)));
if (isRtl()) {
response.render(CssHeaderItem.forUrl(String.format("css/theme-rtl%s.css", suffix)));
}
if (!Strings.isEmpty(getGaCode())) {
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js"))));
StringBuilder script = new StringBuilder("initGA('");
script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "init()").append(';');
response.render(OnDomReadyHeaderItem.forScript(script));
}
}
开发者ID:apache,项目名称:openmeetings,代码行数:17,代码来源:BasePage.java
示例8: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(Chat.class, "chat.js"))));
response.render(new PriorityHeaderItem(getNamedFunction("chatActivity", chatActivity, explicit(PARAM_TYPE), explicit(PARAM_ROOM_ID), explicit(PARAM_MSG_ID))));
if (showDashboardChat) {
ChatDao dao = getBean(ChatDao.class);
StringBuilder sb = new StringBuilder(getReinit());
List<ChatMessage> list = new ArrayList<>(dao.getGlobal(0, 30));
for(Long roomId : getUserRooms(getUserId())) {
Room r = getBean(RoomDao.class).get(roomId);
sb.append(addRoom(r));
}
list.addAll(dao.getUserRecent(getUserId(), Date.from(Instant.now().minus(Duration.ofHours(1L))), 0, 30));
if (!list.isEmpty()) {
sb.append("Chat.addMessage(").append(getMessage(list).toString()).append(");");
}
response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
}
}
开发者ID:apache,项目名称:openmeetings,代码行数:22,代码来源:Chat.java
示例9: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(final IHeaderResponse response) {
HeaderItem headerItem = null;
if (renderedShowing && showing) {
/*
* workaround for modal tags being copied by bootstrap-modal right into body and wicket updating the wrong
* tags in their previous position
*/
headerItem = OnDomReadyHeaderItem.forScript(createRefreshScript());
} else if (!renderedShowing && showing) {
headerItem = OnDomReadyHeaderItem.forScript(createShowScript());
renderedShowing = true;
} else if (renderedShowing && !showing) {
final StringBuilder script = new StringBuilder();
//scroll gets enabled again by registered hidden.bs.modal event from bootstrapModalConfig.js
script.append("$(window).disablescroll();");
script.append(createRefreshScript());
script.append(createHideScript());
headerItem = OnDomReadyHeaderItem.forScript(script);
renderedShowing = false;
}
renderDirectlyOrDelegateToRoot(response, headerItem);
alreadyRendered = true;
}
开发者ID:subes,项目名称:invesdwin-nowicket,代码行数:25,代码来源:ModalContainer.java
示例10: bratInitRenderLater
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
/**
* Reload {@link BratAnnotationEditor} when the Correction/Curation page is opened
*
* @param aResponse
* the response.
*/
private void bratInitRenderLater(IHeaderResponse aResponse)
{
// Must be OnDomReader so that this is rendered before all other Javascript that is
// appended to the same AJAX request which turns the annotator visible after a document
// has been chosen.
// aResponse.render(OnDomReadyHeaderItem.forScript(bratInitCommand()));
// aResponse.render(OnLoadHeaderItem.forScript(bratLoadCollectionLaterCommand()));
// aResponse.render(OnLoadHeaderItem.forScript(bratRenderLaterCommand()));
String script = "setTimeout(function() { " +
bratInitCommand() +
bratLoadCollectionCommand() +
bratRenderLaterCommand() +
"}, 0);";
aResponse.render(OnDomReadyHeaderItem.forScript(script));
}
开发者ID:webanno,项目名称:webanno,代码行数:23,代码来源:BratAnnotationEditor.java
示例11: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forUrl(JQUERYSCRIPT));
response.render(JavaScriptHeaderItem.forUrl(JQUERYUISCRIPT));
response.render(JavaScriptHeaderItem.forUrl(DATEPICKERSCRIPT));
response.render(JavaScriptHeaderItem.forUrl(StatsManager.SITESTATS_WEBAPP + "/script/reports.js"));
StringBuilder onDomReady = new StringBuilder();
onDomReady.append("checkWhatSelection();");
onDomReady.append("checkWhenSelection();");
onDomReady.append("checkWhoSelection();");
onDomReady.append("checkHowSelection();");
onDomReady.append("checkReportDetails();");
onDomReady.append("checkHowChartSelection();");
onDomReady.append(String.format("loadJQueryDatePicker('%s','%s');", "whenFrom", DateFormatterUtil.format(getReportParams().getWhenFrom(), DATEPICKER_FORMAT, getSession().getLocale())));
onDomReady.append(String.format("loadJQueryDatePicker('%s','%s');", "whenTo", DateFormatterUtil.format(getReportParams().getWhenTo(), DATEPICKER_FORMAT, getSession().getLocale())));
response.render(OnDomReadyHeaderItem.forScript(onDomReady.toString()));
}
开发者ID:sakaiproject,项目名称:sakai,代码行数:19,代码来源:ReportsEditPage.java
示例12: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(HtmlHeaderContainer container) {
container.getHeaderResponse().render(JavaScriptHeaderItem.forUrl(BasePage.JQUERYSCRIPT));
container.getHeaderResponse().render(JavaScriptHeaderItem.forUrl(StatsManager.SITESTATS_WEBAPP+"/html/components/jqueryFileTree/jqueryFileTree.js"));
container.getHeaderResponse().render(CssHeaderItem.forUrl(StatsManager.SITESTATS_WEBAPP+"/html/components/jqueryFileTree/jqueryFileTree.css"));
StringBuilder onDomReady = new StringBuilder();
onDomReady.append("jQuery('#sitestats-containerInner').fileTree(");
onDomReady.append(" {root: '");
onDomReady.append(BASE_DIR);
onDomReady.append("', script: '");
onDomReady.append(ajaxResourcesLoader.getCallbackUrl());
onDomReady.append("', duration: 100},");
onDomReady.append(" function(file) {return false;}");
onDomReady.append(");");
container.getHeaderResponse().render(OnDomReadyHeaderItem.forScript(onDomReady.toString()));
super.renderHead(container);
}
开发者ID:sakaiproject,项目名称:sakai,代码行数:18,代码来源:FileSelectorPanel.java
示例13: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
// add java script stuff
response.render(JavaScriptHeaderItem.forUrl(JSTemplates.MAIN_JS,
JSTemplates.MAIN_JS_REF_ID));
// add javascript files for using jquery table sorter and select all
response.render(JavaScriptHeaderItem.forUrl(
JSTemplates.JQUERY_TABLESORT_JS,
JSTemplates.JQUERY_TABLESORT_JS_REF_ID));
// add javascript files for using jquery ui (sortable, draggable etc.)
response.render(JavaScriptHeaderItem.forUrl(JSTemplates.JQUERY_UI_JS,
JSTemplates.JQUERY_UI_JS_REF_ID));
// initially hide all ".collapse" thingies
response.render(OnDomReadyHeaderItem
.forScript(JSTemplates.INIT_COLLAPSE));
}
开发者ID:U-QASAR,项目名称:u-qasar.platform,代码行数:21,代码来源:MainBehavior.java
示例14: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
response.render(JavaScriptHeaderItem.forReference(DRAWER_JAVASCRIPT));
response.render(JavaScriptHeaderItem.forReference(MANAGER_JAVASCRIPT));
response.render(CssHeaderItem.forReference(DRAWER_CSS));
Iterator<ListItem> iter = drawers.descendingIterator();
WebMarkupContainer drawer;
while (iter.hasNext()) {
drawer=iter.next().item;
response.render(OnDomReadyHeaderItem.forScript("$('#"+drawer.getMarkupId()+"').modaldrawer('show');"));
if (drawers.getFirst().item.equals(drawer)) {
response.render(OnDomReadyHeaderItem.forScript("$('#"+drawer.getMarkupId()+"').addClass('shown-modal');"));
response.render(OnDomReadyHeaderItem.forScript("$('#"+drawer.getMarkupId()+"').removeClass('hidden-modal');"));
} else {
response.render(OnDomReadyHeaderItem.forScript("$('#"+drawer.getMarkupId()+"').removeClass('shown-modal');"));
response.render(OnDomReadyHeaderItem.forScript("$('#"+drawer.getMarkupId()+"').addClass('hidden-modal');"));
}
}
}
开发者ID:premium-minds,项目名称:pm-wicket-utils,代码行数:23,代码来源:DrawerManager.java
示例15: getScrollBehaviour
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
private Behavior getScrollBehaviour(){
return new AttributeModifier("onscroll", Model.of(this.getMarkupId())){
private static final long serialVersionUID = 3523727356782417598L;
@Override
public void renderHead(Component component, IHeaderResponse response) {
super.renderHead(component, response);
response.render(OnDomReadyHeaderItem.forScript("InfiniteScroll.getFromContainer('"+getMarkupId()+"').setUrls('"+upBehavior.getCallbackUrl()+"', '"+downBehavior.getCallbackUrl()+"')"));
}
@Override
protected String newValue(String currentValue, String replacementValue) {
return "InfiniteScroll.handleScroll('"+InfiniteScrollListView.this.getMarkupId()+"')";
}
};
}
开发者ID:premium-minds,项目名称:pm-wicket-utils,代码行数:18,代码来源:InfiniteScrollListView.java
示例16: onInitialize
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
protected void onInitialize() {
super.onInitialize();
setOutputMarkupPlaceholderTag(true);
add(new WebMarkupContainer("close"){
private static final long serialVersionUID = 1566780832755857170L;
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
StringBuilder sb = new StringBuilder();
sb.append("$('#"+this.getMarkupId()+"').click(function(){");
sb.append(" $('#"+BootstrapFeedbackPanel.this.getMarkupId()+"').hide();");
sb.append("})");
response.render(OnDomReadyHeaderItem.forScript(sb.toString()));
}
});
}
开发者ID:premium-minds,项目名称:pm-wicket-utils,代码行数:23,代码来源:BootstrapFeedbackPanel.java
示例17: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
List<FeedbackMessage> msgs = model.getObject();
if(msgs.size()>0){
for(Component component: messages.keySet()){
StringBuffer sb = new StringBuffer();
for(FeedbackMessage msg : messages.get(component)){
sb.append(msg.getMessage()+"\n");
msg.markRendered();
}
String script = "$(\"#"+component.getMarkupId()+"\")"
+ ".popover({ 'trigger': 'focus', "
+ "'placement': 'top', "
+ "'content': \""+StringEscapeUtils.escapeEcmaScript(sb.toString())+"\", "
+ "'template': '<div class=\"popover feedback-popover\"><div class=\"arrow\"></div><div class=\"popover-inner\"><h3 class=\"popover-title\"></h3><div class=\"popover-content\"><p></p></div></div></div>'"
+ "});";
script += "$(\"#"+component.getMarkupId()+"\").keypress(function(){ $(\"#"+this.getMarkupId()+"\").removeClass('has-error'); $(this).popover('destroy'); });";
response.render(OnDomReadyHeaderItem.forScript(script));
}
}
}
开发者ID:premium-minds,项目名称:pm-wicket-utils,代码行数:26,代码来源:BootstrapFeedbackPopover.java
示例18: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(IHeaderResponse response) {
if (modalPanel == null) {
return;
}
JQueryHelper.initJQuery(response);
//response.render(CssHeaderItem.forReference(new PackageResourceReference(DMDModalWindow.class, "DMDModalWindow.css")));
response.render(JavaScriptHeaderItem.forReference(new PackageResourceReference(DMDModalWindow.class, "DMDModalWindow.js")));
if (doShow) {
String setDimensionToModalFooter = "";
if (dimension != null) {
setDimensionToModalFooter = "dmdModalWindowSetzeHoeheAnModalBody(" + (int) dimension.getHeight() + ", " + 1200 + ");";
}
// Bootstrap macht bei jeder Form einen margin-bottom von 20px.
// Dieses ist in der modalen Box sehr störend und muss per
// Javascript korrigiert werden
response.render(OnDomReadyHeaderItem.forScript("dmdModalWindowKorrigiereFormMargin(); zeigeBlockerWennModalPanelVorhanden(); "
+ setDimensionToModalFooter));
}
else {
response.render(OnLoadHeaderItem.forScript("zeigeBlockerWennModalPanelVorhanden();"));
}
}
开发者ID:Nocket,项目名称:nocket,代码行数:26,代码来源:DMDModalWindow.java
示例19: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(Component component, IHeaderResponse response) {
component.setOutputMarkupId(true);
// JsObjectBuilder opts = new JsObjectBuilder();
// opts.put("autoclose", true);
// opts.put("format", format.replace('M', 'm'));
// opts.put("language", component.getLocale().toString());
JsObject opts = new JsObject();
opts.put("format", format.toUpperCase());
if (startDate != null) {
opts.put("minDate", new JsCode(String.format("new Date(%d, %d, %d)", startDate.getYear(), startDate.getMonthOfYear()-1, startDate.getDayOfMonth())));
}
if (endDate != null) {
opts.put("maxDate", new JsCode(String.format("new Date(%d, %d, %d)", endDate.getYear(), endDate.getMonthOfYear()-1, endDate.getDayOfMonth())));
}
response.render(OnDomReadyHeaderItem.forScript(String.format("Panelized.DatePicker.init('#%s', %s)", component.getMarkupId(), opts)));
}
开发者ID:jkrasnay,项目名称:panelized,代码行数:24,代码来源:DatePicker.java
示例20: renderHead
import org.apache.wicket.markup.head.OnDomReadyHeaderItem; //导入依赖的package包/类
@Override
public void renderHead(Component component, IHeaderResponse response) {
// Include jquery-ui reference, if configured
final ApplicationSettings settings = ApplicationSettings.get();
if (settings.isIncludeJqueryUI()) {
response.render(JavaScriptHeaderItem.forReference(settings.getJqueryUIReference()));
}
// Render script to enable sortable/drag-and-drop behavior
String script = "$('#%1$s').select2('container').find('ul.select2-choices').sortable({" +
"containment: 'parent'," +
"start: function() { $('#%1$s').select2('onSortStart'); }," +
"update: function() { $('#%1$s').select2('onSortEnd'); }" +
"});";
response.render(OnDomReadyHeaderItem.forScript(JQuery.execute(script, component.getMarkupId())));
}
开发者ID:PkayJava,项目名称:pluggable,代码行数:18,代码来源:DragAndDropBehavior.java
注:本文中的org.apache.wicket.markup.head.OnDomReadyHeaderItem类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论