- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JBoss AS 7.1.1 上使用 JSF 2.1.7 和 Myfaces CODI 1.0.5。我的<h:commandButton>
不管用。我已阅读要求并通过许多博客中的示例都无济于事。我的facelets代码如下
<ui:define name="pagecontent">
<h1 class="title ui-widget-header ui-corner-all">Upload Bulk Contact File</h1>
<div class="entry">
<h:form enctype="multipart/form-data" id="upload">
<p:panel closable="false" collapsed="false" header="Excel Contact Uploader"
id="pnlupload" rendered="true" toggleable="false" visible="true" widgetVar="pnlupload">
<p:growl id="msg" showDetail="true" life="3000" showSummary="true"/>
<p:fileUpload auto="true"
allowTypes="/(\.|\/)(xls)$/"
sizeLimit="1024000"
mode="advanced"
multiple="true" invalidFileMessage="Invalid file type" invalidSizeMessage="File too
large" dragDropSupport="true"
fileUploadListener="#{excelFileController.handleFileUpload}" showButtons="true"
update="msg, tblcontacts" required="false"/>
<p:scrollPanel rendered="true" style="height:200px;">
<p:dataTable draggableColumns="false" editable="false" emptyMessage="No
Contacts Uploaded" id="tblcontacts" rendered="true" rows="8"
selection="#{excelFileController.contactsSelected}"
value="#{excelFileController.contactDataModel}" var="contact" style="width:50pc;">
<p:column selectionMode="multiple" style="width:18px" />
<p:column headerText="File Name">
#{contact.groupName}
</p:column>
<p:column headerText="Number of Contacts">
#{contact.numberofentries}
</p:column>
<p:column>
<h:button outcome="blkedit?faces-redirect=true" rendered="true" value="Edit">
<f:param name="contact" value="#{contact.contactId}"/>
</h:button>
</p:column>
</p:dataTable>
</p:scrollPanel>
<br />
</p:panel>
<h:commandButton value="Delete" id="btndelete"
action="#{excelFileController.removeContact}" type="button" immediate="true"
disabled="false" rendered="true"/>
<h:message for="btndelete" />
</h:form>
</div>
</ui:define>
ExcelFileController
的代码如下:
@Named
@ViewAccessScoped
public class ExcelFileController implements Serializable, IFileController {
/**
*
*/
private static final long serialVersionUID = -8117258104485487921L;
@Inject
PhoneNumberFormatter formatter;
@Inject
@Authenticated
UserProfile profile;
public PhoneNumberFormatter getFormatter() {
return formatter;
}
public void setFormatter(PhoneNumberFormatter formatter) {
this.formatter = formatter;
}
@EJB
BulkContactDeleter deleter;
@Inject
Logger logger;
@Inject
@CurrentContext
FacesContext context;
@Inject
BulkSMSContactListProducer listProducer;
@Inject
ConfigurationListProducer producer;
private BulkSMSContacts[] contactsSelected;
private BulkContactDataModel contactDataModel;
public BulkSMSContacts[] getContactsSelected() {
return contactsSelected;
}
public void setContactsSelected(BulkSMSContacts[] contactsSelected) {
this.contactsSelected = contactsSelected;
}
public BulkContactDataModel getContactDataModel() {
return contactDataModel;
}
@PostConstruct
public void init() {
logger.log(Level.INFO, "Entering excel file controller");
contactDataModel = new BulkContactDataModel(
listProducer.getBulkSMSContacts());
}
/*
* (non-Javadoc)
*
* @see
* org.jboss.tools.examples.controller.IFileController#handleFileUpload(
* org.primefaces.event.FileUploadEvent)
*/
@Override
public void handleFileUpload(FileUploadEvent event) {
StringBuffer buffer = new StringBuffer();
// create a new file input stream with the input file specified
// at the command line
InputStream fin = null;
try {
fin = event.getFile().getInputstream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// create a new org.apache.poi.poifs.filesystem.Filesystem
POIFSFileSystem poifs = null;
try {
poifs = new POIFSFileSystem(fin);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HSSFWorkbook wb = null;
try {
wb = new HSSFWorkbook(poifs);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int numberofsheets = wb.getNumberOfSheets();
for (int i = 0; i < numberofsheets; i++) {
HSSFSheet sheet = wb.getSheetAt(i);
for (Row row : sheet) {
for (Cell cell : row) {
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING :
if (!cell.getStringCellValue().isEmpty())
buffer.append(formatter.formatPhoneNumber(cell
.getStringCellValue()));
buffer.append(producer.getConfiguration(
SettingsName.SMS_PHONENUMBERDELIMITER
.toString()).getValue());
break;
case Cell.CELL_TYPE_NUMERIC :
if (cell.getNumericCellValue() != 0) {
buffer.append(formatter
.formatPhoneNumber(String.valueOf(cell
.getNumericCellValue())));
buffer.append(producer.getConfiguration(
SettingsName.SMS_PHONENUMBERDELIMITER
.toString()).getValue());
break;
}
default :
break;
}
}
}
}
BulkSMSContacts contacts = new BulkSMSContacts();
contacts.setAccount(profile.getSmsAccount());
int number = formatter.splitPhoneNumbers(buffer.toString()).length;
contacts.setContacts(buffer.toString());
String filenameString = event.getFile().getFileName();
int index = filenameString.indexOf(".");
filenameString = filenameString.substring(0, index);
contacts.setGroupName(filenameString);
contacts.setNumberofentries(number);
try {
deleter.addContact(contacts);
List<BulkSMSContacts> temp = listProducer.getBulkSMSContacts();
contactDataModel.setWrappedData(temp);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,
"Success", number
+ " entries processed. Please refresh page to view"));
}
/*
* (non-Javadoc)
*
* @see org.jboss.tools.examples.controller.IFileController#removeContact()
*/
@Override
public String removeContact() {
int contactsdeleted = 0;
if (contactsSelected != null) {
for (BulkSMSContacts contacts : contactsSelected) {
if (contacts != null) {
deleter.deleteContact(contacts);
contactsdeleted += 1;
}
}
List<BulkSMSContacts> temp = listProducer.getBulkSMSContacts();
contactDataModel.setWrappedData(temp);
logger.log(Level.INFO, "Deleted " + contactsdeleted + " Contacts");
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "Success", contactsdeleted
+ " entries where deleted successfully"));
} else {
context.addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, "Error",
"No contact file was selected!"));
}
return null;
}
}
除了最后一个“removeContact”之外,所有方法都工作正常,其中涉及的 CommandButton 甚至不启动回发。
这是怎么引起的,我该如何解决?
最佳答案
您需要删除 type="button"
来自 <h:commandButton>
.应该是type="submit"
,这已经是默认设置了。
type="button"
使它成为 <input type="button">
而不是 <input type="submit">
这仅对您通常使用 onclick
附加的客户端处理程序有用等等。
关于jsf-2 - <h :commandButton> does not initiate a postback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958208/
我正在进入网络开发领域,并且看到了回发这个词。来自非 Web 背景的新 Web 开发人员需要了解哪些关于回发的知识? (即它们是什么以及它们何时出现?) 如果您愿意分享更多信息来帮助网络世界的新手了解
1> 只是想了解 SignalR 1.x 在特定场景下的功能 假设我们有 10 个客户端连接到 Hub,其中一个连接的客户端说 client-1 执行回发,所以调用 OnDisconnected 而不
我的站点当前实现了我们已在IIS中映射的自定义404页面。因此,当用户执行类似www.mysite.com/foo/bar/doesnotexist的操作时,它将执行404.aspx URL。这很好用
我有这个 aspx: 现在在 Page_Load 我想确定 PostBack 是否由 check 引起,所以我遵循了 this使用此代码的问题方法: if(FindControl(Page.Requ
我想使用 POSTBACK 方法检查用户是否存在于 mysql 表中。我正在研究 mysql,我知道它很快就会被删除,但目前我无法更改。我希望警报在用户名文本框旁边弹出(如果它已经存在)。目前它不起作
我有一个表单,可以在提交时下载生成的 csv 文件。我在页面上有一个 asp:Literal 作为加载文本的占位符: $("input[type=submit]").on("click"
我想将所选的下拉列表项插入数据库,但我的下拉列表保留返回第一个选项。自动回发是假的。代码在这里: dropTask() = 我从数据库中填充它的下拉列表。 protected void
在我的页面中有很多控件,我想知道是谁在 Page_Load 事件中导致了页面 PostBack。 最佳答案 为此你可以试试 string ctr = Page.Request.Params.Get("
我在客户端有一些验证 JS 代码,必须在 PostBack 之前执行。如果此验证码返回“false”,则无需回发。如何禁用它? 最佳答案 请记住,真正的验证应该始终在服务器上进行。您在客户端所做的任何
这是我的java脚本 $('#geoLocation').click(function () { alert("I am Here"); if (navigator.
我在运行时向 Page Form 对象添加控件。 每个控件都有一个 Id。 在回发时,我希望能够访问这些控件及其值。 目前,当我执行回发时,表单在 Form.Controls 集合中没有控件。 我该如
我在 ASP.NET 触发按钮单击两次时遇到问题。该按钮位于 UpdatePanel 内,但当我单击它时,我得到两次回传,然后单击两次按钮,然后两次调用我的 DAL(按此顺序)。我以前从未遇到过这种情
我在证明我的请求表单时遇到了一些麻烦,因此它只能提交有效信息并告诉用户什么是错误的,如果不是的话。 我希望 Controller 创建的新属性(新联系人的属性)在表单回发时被不显眼的 JS 验证为 f
这是一个一般性问题,我还没有找到答案。 我能否在代码中区分 PostBack 和刷新以确保人们不会重复提交相同的项目? 应用程序是基于 C# 的 ASP.NET。代码如下: protected voi
我会尽我所能阐明我想做的事情。 让我先声明一下,我是 C# 和 ASP.NET 的新手,对 javascript 的经验很少。 我有一个调用提示框的 javascript 函数。总体情况是——如果输入
现在我有一个带有 3 个步骤的 asp:Wizard。 创建用户 表格到电子邮件 字段摘要 当在第三步单击完成按钮时,我想创建用户并发送表单。我有写这篇文章的逻辑,但我唯一的问题是当按下向导上的下一个
我有一个 ASP.NET TextBox,我希望它是 ReadOnly。 (用户使用另一个控件修改它) 但是当有 PostBack() 时,文本会重置为空字符串。 我知道,如果您将 TextBox 的
问题 安 不更新了 背景 我有一个页面叫 Add_Edit_Drugs.aspx .可以通过以下两种方式之一访问此页面:用户可以单击 Add Drug按钮,触发 Response.Redirect("
根据 documentation,我在验证与 Skadnetwork/Apple 的回发时遇到问题苹果正在放弃。 我有两个问题(至少我认为只有两个问题)。 \u2063 - 我正在使用 PHP 从 P
我想通过在特定事件发生后将一些 AJAX 插入页面来导致仅发生一次的回发。 目前我有: string script = "" +
我是一名优秀的程序员,十分优秀!